Aspose.PSD para .NET 20.5 - Notas de la versión
Clave | Resumen | Categoría |
---|---|---|
PSDNET-595 | Soporte de Máscaras de Capa para Grupos de Capas | Característica |
PSDNET-201 | Soporte para progreso de conversión de documentos | Característica |
PSDNET-275 | Soporte de Recurso Nvrt (Recurso de Capa de Ajuste de Inversión) | Característica |
PSDNET-124 | Soporte de Guardado de Imagen PSD con Modo de Color Escala de Grises de 16 bits por canal | Característica |
PSDNET-589 | Refactorización de Ejemplos en GitHub | Mejora |
PSDNET-587 | La alineación de texto a través de ITextPortion no funciona para idiomas de derecha a izquierda. El archivo de salida está dañado. | Error |
PSDNET-604 | Excepción al intentar abrir un archivo Psd en particular con Color Lab y 8 bits/canal | Error |
PSDNET-598 | Corregir guardado de imagen PSD con Modo de Color Escala de Grises de 16 bits por canal a formato PSD Escala de Grises de 8 bits por canal | Error |
PSDNET-599 | Corregir guardado de imagen PSD con Modo de Color Escala de Grises de 16 bits por canal a formato PSD RGB de 16 bits por canal | Error |
Cambios en la API pública
APIs añadidas:
- Ninguna
APIs eliminadas:
- Ninguna
Ejemplos de uso:
PSDNET-595. Soporte de Máscaras de Capa para Grupos de Capas
string archivoFuente = "psdnet595.psd";
string salidaPng = "salida.png";
string salidaPsd = "salida.psd";
using (var entrada = (PsdImage)Image.Load(archivoFuente))
{
entrada.Save(salidaPng, new PngOptions());
entrada.Save(salidaPsd);
}
PSDNET-201. Soporte para progreso de conversión de documentos
string rutaArchivoFuente = "Apple.psd";
Stream flujoSalida = new MemoryStream();
ProgressEventHandler manejadorProgresoLocal = delegate(ProgressEventHandlerInfo infoProgreso)
{
string mensaje = string.Format(
"{0} {1}: {2} de {3}",
infoProgreso.Descripción,
infoProgreso.TipoEvento,
infoProgreso.Valor,
infoProgreso.ValorMáximo);
Console.WriteLine(mensaje);
};
Console.WriteLine("---------- Cargando Apple.psd ----------");
var opcionesCarga = new PsdLoadOptions() { ProgressEventHandler = manejadorProgresoLocal };
using (PsdImage imagen = (PsdImage)Image.Load(rutaArchivoFuente, opcionesCarga))
{
Console.WriteLine("---------- Guardando Apple.psd en formato PNG ----------");
imagen.Save(
flujoSalida,
new PngOptions()
{
TipoColor = PngColorType.Truecolor, ProgressEventHandler = manejadorProgresoLocal
});
Console.WriteLine("---------- Guardando Apple.psd en formato PSD ----------");
imagen.Save(
flujoSalida,
new PsdOptions()
{
ModoColor = ColorModes.Rgb,
RecuentoCanales = 4,
ProgressEventHandler = manejadorProgresoLocal
});
}
PSDNET-275. Soporte de Recurso Nvrt (Recurso de Capa de Ajuste de Inversión)
using (var imagenPsd = (PsdImage)Image.Load("CapaAjusteInversión.psd"))
{
foreach (var capa in imagenPsd.Capas)
{
if (capa is InvertAdjustmentLayer)
{
foreach (var recursoCapa in capa.Recursos)
{
if (recursoCapa is NvrtResource)
{
// El recurso NvrtResource es compatible.
var recurso = (NvrtResource)recursoCapa;
break;
}
}
}
}
}
PSDNET-124. Corregir guardado de imagen PSD con Modo de Color Escala de Grises de 16 bits por canal a formato PSD Escala de Grises de 8 bits por canal
void GuardarACargarYGuardarAImagenPng(
string archivo,
ColorModes modoColor,
short recuentoBitsCanal,
short recuentoCanales,
CompressionMethod compresión,
int númeroCapa)
{
string rutaArchivo = archivo + ".psd";
string sufijo = modoColor.ToString() + recuentoBitsCanal + "_" + recuentoCanales + "_" + compresión;
string rutaExportación = @"Salida\" + archivo + sufijo + ".psd";
PsdOptions opcionesPsd = new PsdOptions()
{
ModoColor = modoColor,
RecuentoBitsCanal = recuentoBitsCanal,
RecuentoCanales = recuentoCanales,
MétodoCompresión = compresión
};
using (PsdImage imagen = (PsdImage)Image.Load(rutaArchivo))
{
RasterCachedImage raster = númeroCapa >= 0 ? (RasterCachedImage)imagen.Capas[númeroCapa] : imagen;
Aspose.PSD.Graphics gráficos = new Graphics(raster);
int ancho = raster.Ancho;
int altura = raster.Altura;
Rectangle rectángulo = new Rectangle(
ancho / 3,
altura / 3,
ancho - (2 * (ancho / 3)) - 1,
altura - (2 * (altura / 3)) - 1);
gráficos.DibujarRectángulo(new Aspose.PSD.Pen(Color.GrisOscuro, 1), rectángulo);
imagen.Save(rutaExportación, opcionesPsd);
}
string rutaExportaciónPng = Path.ChangeExtension(rutaExportación, "png");
using (PsdImage imagen = (PsdImage)Image.Load(rutaExportación))
{
// Aquí no debería haber ninguna excepción.
imagen.Save(rutaExportaciónPng, new PngOptions() { TipoColor = PngColorType.EscalaGrisesConAlfa });
}
}
GuardarACargarYGuardarAImagenPng("escalaGrises5x5", ColorModes.Cmyk, 16, 5, CompressionMethod.RLE, 0);
GuardarACargarYGuardarAImagenPng("argb16bit_5x5", ColorModes.EscalaGrises, 16, 2, CompressionMethod.RLE, 0);
GuardarACargarYGuardarAImagenPng("argb16bit_5x5_sin_capas", ColorModes.EscalaGrises, 16, 2, CompressionMethod.RLE, -1);
GuardarACargarYGuardarAImagenPng("argb8bit_5x5", ColorModes.EscalaGrises, 16, 2, CompressionMethod.RLE, 0);
GuardarACargarYGuardarAImagenPng("argb8bit_5x5_sin_capas", ColorModes.EscalaGrises, 16, 2, CompressionMethod.RLE, -1);
GuardarACargarYGuardarAImagenPng("cmyk16bit_5x5_sin_capas", ColorModes.EscalaGrises, 16, 2, CompressionMethod.RLE, -1);
GuardarACargarYGuardarAImagenPng("índice8bit_5x5", ColorModes.EscalaGrises, 16, 2, CompressionMethod.RLE, -1);
PSDNET-587. La alineación de texto a través de ITextPortion no funciona para idiomas de derecha a izquierda. El archivo de salida está dañado.
string nombreArchivoFuente = "bidi.psd";
string nombreArchivoSalida = "salidaBidi.psd";
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoFuente))
{
var capa = (TextLayer)imagen.Capas[2];
var porciones = capa.TextData.Items;
porciones[0].Paragraph.Justificación = 2;
capa.TextData.UpdateLayerData();
imagen.Save(nombreArchivoSalida);
}
PSDNET-604. Excepción al intentar abrir un archivo Psd en particular con Color Lab y 8 bits/canal
string archivoFuente = "SinTítulo-1.psd";
string archivoSalidaPsd = "salida.psd";
using (var imagenPsd = (PsdImage)Image.Load(archivoFuente))
{
imagenPsd.Save(archivoSalidaPsd);
}
// Archivo LAB cargado y guardado sin lanzar excepciones.
PSDNET-598. Corregir guardado de imagen PSD con Modo de Color Escala de Grises de 16 bits por canal a formato PSD Escala de Grises de 8 bits por canal
string nombreArchivoFuente = "escalaGrises16bit.psd";
string nombreArchivoExportación = "escalaGrises16bit_salida.psd";
PsdOptions opcionesPsd = new PsdOptions()
{
ModoColor = ColorModes.EscalaGrises,
RecuentoBitsCanal = 8,
RecuentoCanales = 2
};
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoFuente))
{
RasterCachedImage raster = imagen.Capas[0];
Aspose.PSD.Graphics gráficos = new Graphics(raster);
int ancho = raster.Ancho;
int altura = raster.Altura;
Rectangle rectángulo = new Rectangle(ancho / 3, altura / 3, ancho - (2 * (ancho / 3)) - 1, altura - (2 * (altura / 3)) - 1);
gráficos.DibujarRectángulo(new Aspose.PSD.Pen(Color.GrisOscuro, 1), rectángulo);
imagen.Save(nombreArchivoExportación, opcionesPsd);
}
string rutaExportaciónPng = Path.ChangeExtension(nombreArchivoExportación, "png");
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoExportación))
{
// Aquí no debería haber ninguna excepción.
imagen.Save(rutaExportaciónPng, new PngOptions() { TipoColor = PngColorType.EscalaGrisesConAlfa });
}
PSDNET-599. Corregir guardado de imagen PSD con Modo de Color Escala de Grises de 16 bits por canal a formato PSD RGB de 16 bits por canal
string nombreArchivoFuente = "escalaGrises16bit.psd";
string nombreArchivoExportación = "escalaGrises16bit_salida.psd";
PsdOptions opcionesPsd = new PsdOptions()
{
ModoColor = ColorModes.Rgb,
RecuentoBitsCanal = 8,
RecuentoCanales = 4
};
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoFuente))
{
RasterCachedImage raster = imagen.Capas[0];
Aspose.PSD.Graphics gráficos = new Graphics(raster);
int ancho = raster.Ancho;
int altura = raster.Altura;
Rectangle rectángulo = new Rectangle(ancho / 3, altura / 3, ancho - (2 * (ancho / 3)) - 1, altura - (2 * (altura / 3)) - 1);
gráficos.DibujarRectángulo(new Aspose.PSD.Pen(Color.GrisOscuro, 1), rectángulo);
imagen.Save(nombreArchivoExportación, opcionesPsd);
}
string rutaExportaciónPng = Path.ChangeExtension(nombreArchivoExportación, "png");
using (PsdImage imagen = (PsdImage)Image.Load(nombreArchivoExportación))
{
// Aquí no debería haber ninguna excepción.
imagen.Save(rutaExportaciónPng, new PngOptions() { TipoColor = PngColorType.EscalaGrisesConAlfa });
}