Notas de la versión de Aspose.PSD para .NET 20.3
Clave | Resumen | Categoría |
---|---|---|
PSDNET-188 | Soporte de .Net Core | Característica |
PSDNET-523 | Convertir archivos de Adobe Illustrator en PDF | Característica |
PSDNET-212 | Agregar capacidad para representar diferentes estilos en una capa de texto | Característica |
PSDNET-144 | Soporte de Capa de Ajuste en Blanco y Negro | Característica |
PSDNET-233 | Agregar soporte para exportar formato AI (Versión 8) a otros formatos | Característica |
PSDNET-540 | Soporte de Modo de Mezcla de Pase de Procesamiento (Utilizado solo para Grupos de Capas). | Característica |
PSDNET-539 | Excepción: Falla al cargar imagen con Nombres Alfa Unicode vacíos | Error |
PSDNET-541 | Salida incorrecta después de cambiar la visibilidad de un Grupo de Capas | Error |
PSDNET-516 | Excepción al cargar imagen PSD: La sección de color (Recurso de Sombra) debe contener 3 componentes de color para RGB o 4 componentes de color para CMYK | Error |
PSDNET-536 | Excepción al intentar dibujar en una capa recién creada si se usa la versión simple del Constructor | Error |
Cambios en la API pública
APIs añadidas:
- T:Aspose.PSD.FileFormats.Psd.FontBaseline
- F:Aspose.PSD.FileFormats.Psd.FontBaseline.None
- F:Aspose.PSD.FileFormats.Psd.FontBaseline.Superscript
- F:Aspose.PSD.FileFormats.Psd.FontBaseline.Subscript
- T:Aspose.PSD.FileFormats.Psd.FontCaps
- F:Aspose.PSD.FileFormats.Psd.FontCaps.None
- F:Aspose.PSD.FileFormats.Psd.FontCaps.SmallCaps
- F:Aspose.PSD.FileFormats.Psd.FontCaps.AllCaps
- M:Aspose.PSD.FileFormats.Psd.PsdImage.AddBlackWhiteAdjustmentLayer
- F:Aspose.PSD.FileFormats.Psd.Layers.BlendMode.Absent
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerGroup.BlendModeKey
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FauxBold
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FauxItalic
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Underline
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Strikethrough
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FontBaseline
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.BaselineShift
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FontCaps
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.ProducePortions(System.String[],Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle,Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph)
APIs eliminadas:
- Ninguna
Ejemplos de uso:
PSDNET-523. Convertir archivos de Adobe Illustrator en PDFs
string archivoFuente = "rect2_color.ai";
using (var imagenAI = (AiImage)Image.Load(archivoFuente))
{
imagenAI.Save("rect2_color.ai_output.pdf", new PdfOptions());
}
PSDNET-212. Agregar capacidad para representar diferentes estilos en una capa de texto
string archivoFuente = "text212.psd";
string archivoEthalon = "Ethalon_text212.psd";
string archivoSalida = "Output_text212.psd";
using (var img = (PsdImage)Image.Load(archivoFuente))
{
TextLayer capaTexto = (TextLayer)img.Layers[1];
IText datosTexto = capaTexto.TextData;
ITextStyle estiloPredeterminado = datosTexto.ProducePortion().Style;
ITextParagraph parrafoPredeterminado = datosTexto.ProducePortion().Paragraph;
estiloPredeterminado.FillColor = Color.DimGray;
estiloPredeterminado.FontSize = 51;
datosTexto.Items[1].Style.Strikethrough = true;
ITextPortion[] nuevasPorciones = datosTexto.ProducePortions(new string[] { "E=mc", "2\r", "Negrita", "Cursiva\r", "Texto en minúsculas" }, estiloPredeterminado, parrafoPredeterminado);
nuevasPorciones[0].Style.Underline = true; // editar estilo de texto "E=mc"
nuevasPorciones[1].Style.FontBaseline = FontBaseline.Superscript; // editar estilo de texto "2\r"
nuevasPorciones[2].Style.FauxBold = true; // editar estilo de texto "Negrita"
nuevasPorciones[3].Style.FauxItalic = true; // editar estilo de texto "Cursiva\r"
nuevasPorciones[3].Style.BaselineShift = -25; // editar estilo de texto "Cursiva\r"
nuevasPorciones[4].Style.FontCaps = FontCaps.SmallCaps; // editar estilo de texto "Texto en minúsculas"
foreach (var nuevaPorcion in nuevasPorciones)
{
datosTexto.AddPortion(nuevaPorcion);
}
datosTexto.UpdateLayerData();
img.Save(archivoSalida);
}
PSDNET-233. Agregar soporte para exportar AI formato (Versión 8) a otros formatos
// Ejemplo de exportar archivo AI a formato PSD y PNG
string nombreArchivoFuente = "form_8.ai";
string nombreArchivoSalida = "form_8_export";
using (AiImage imagen = (AiImage)Image.Load(nombreArchivoFuente))
{
imagen.Save(nombreArchivoSalida + ".psd", new PsdOptions());
imagen.Save(nombreArchivoSalida + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
PSDNET-540. Soporte de Procesamiento de Modo de Mezcla de Pase (Utilizado solo para Grupos de Capas).
void AssertIsTrue(bool condicion, string mensaje)
{
if (!condicion)
{
throw new FormatException(mensaje);
}
}
string nombreArchivoFuente = "Apple.psd";
string nombreArchivoSalida = "Salida" + nombreArchivoFuente;
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoFuente))
{
AssertIsTrue(imagen.Layers.Length >= 23, "No hay una 23ra capa.");
var capa = imagen.Layers[23] as LayerGroup;
AssertIsTrue(capa != null, "La 23ra capa no es un grupo de capas.");
AssertIsTrue(capa.Name == "GrupoAjuste", "El nombre de la 23ra capa no es 'GrupoAjuste'.");
AssertIsTrue(capa.BlendModeKey == BlendMode.PassThrough, "La capa de GrupoAjuste debería tener un modo de mezcla 'pase por'.");
imagen.Save(nombreArchivoSalida, new PsdOptions());
imagen.Save("SalidaApple.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
capa.BlendModeKey = BlendMode.Normal;
imagen.Save("Normal" + nombreArchivoSalida, new PsdOptions());
imagen.Save("NormalSalidaApple.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
SPSDNET-180. Actualizar texto de capa de texto lanza una excepción
// Actualizar texto de capa de texto lanza una excepción
string rutaArchivo = "FlipVertical.psd";
string rutaSalida = "FlipVertical_cambiado.psd";
var nuevoTexto = "Prueba";
using (var imagen = Image.Load(rutaArchivo))
{
var imagenPSD = imagen as PsdImage;
if (imagen == null)
{
return;
}
var capas = imagenPSD.Layers;
for (var indice = capas.Length - 1; indice >= 0; indice--)
{
var capa = capas[indice] as TextLayer;
if (capa == null)
{
continue;
}
capa.UpdateText(nuevoTexto);
}
var opcionesImagen = new PsdOptions(imagenPSD);
imagenPSD.Save(rutaSalida, opcionesImagen);
}
PSDNET-182. Guardar imagen PSD después de la operación RotateFlip produce un archivo corrupto que no se puede abrir.
string nombreArchivoFuente = "1.psd";
RotateFlipType tipoFlip = RotateFlipType.Rotate270FlipXY;
string nombreArchivoSalidaPsd = "RotateFlipTest2617.psd";
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoFuente))
{
imagen.RotateFlip(tipoFlip);
imagen.Save(nombreArchivoSalidaPsd);
}
// Debería ejecutarse sin excepciones
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoSalidaPsd))
{
// No hacer nada
}
PSDNET-539. Excepción: Fallo al cargar imagen con Recurso de Nombres Alfa Unicode vacíos
string rutaArchivo = "apple.psd";
using (var imagenPSD = (PsdImage)Image.Load(rutaArchivo)) // Aquí no deberíamos obtener excepciones
{
// no hacer nada
}
PSDNET-541. Salida incorrecta después de cambiar la visibilidad de un Grupo de Capas
string archivoFuente = "input.psd";
string archivoSalida = "output.psd";
// realizar cambios en los nombres de las capas y guardarlo
using (var imagen = (PsdImage)Image.Load(archivoFuente))
{
for (int i = 0; i < imagen.Layers.Length; i++)
{
var capa = imagen.Layers[i];
// Apagar todo dentro de un grupo
if (capa is LayerGroup)
{
capa.IsVisible = false;
}
}
imagen.Save(archivoSalida);
}
PSDNET-516. Excepción al cargar imagen PSD: La sección de color (Recurso de Sombra) debe contener 3 componentes de color para RGB o 4 componentes de color para CMYK
string archivoFuente = "sss0136=GUID-SSS0136=1=ar-sa=Low.psd";
using (var img = (PsdImage)Image.Load(archivoFuente)) // Aquí no deberíamos obtener excepciones
{
// no hacer nada
}
PSDNET-536. Excepción si se intenta dibujar en una capa recién creada si se usa la versión simple del Constructor
string archivoSalida = "output.psd";
int ancho = 100;
int alto = 100;
using (var imagen = new PsdImage(ancho, alto))
{
var capa = new Layer();
capa.Bottom = alto;
capa.Right = ancho;
imagen.AddLayer(capa);
Graphics grafico = new Graphics(capa);
grafico.Clear(Color.Yellow);
// dibujar un rectángulo con la herramienta de Pluma
grafico.DrawRectangle(new Pen(Color.Red), new Rectangle(30, 10, 40, 80));
// dibujar otro rectángulo con Brocha Sólida en color Azul
grafico.DrawRectangle(new Pen(new SolidBrush(Color.Blue)), new Rectangle(10, 30, 80, 40));
imagen.Save(archivoSalida);
}