Notas de la versión de Aspose.PSD para .NET 24.6
Contents
 [
      
        Hide
      ]
    
Esta página contiene las notas de la versión de Aspose.PSD para .NET 24.6
| Clave | Resumen | Categoría | 
|---|---|---|
| PSDNET-1450 | Implementar soporte de capa de mapa de degradado | Feature | 
| PSDNET-1670 | [Formato AI] Agregar soporte de metadatos de paquete XPacket al formato AI | Feature | 
| PSDNET-1831 | Implementar tipos de deformación Inflate, Squeeze y Twist | Feature | 
| PSDNET-1653 | Los modos Rgb y Lab no pueden contener menos de 3 canales o más de 4 canales en el archivo con capas de ArtBoard | Bug | 
| PSDNET-1775 | El área de procesamiento superior debe ser positiva. (Parámetro ‘areaToProcess’) en el procesamiento de archivos específicos | Bug | 
| PSDNET-2052 | La imagen ampliada sobre el lienzo se recorta después de guardar. Los datos se pierden pero la vista previa se ve correctamente | Bug | 
Cambios en la API Pública
APIs Agregadas:
- P:Aspose.PSD.FileFormats.Psd.Layers.FillSettings.NoiseGradientFillSettings.ExpansionCount
- M:Aspose.PSD.FileFormats.Psd.PsdImage.AddGradientMapAdjustmentLayer
- T:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.GradientMapLayer
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.GradientMapLayer.GradientSettings
- P:Aspose.PSD.FileFormats.Ai.AiImage.XmpData
APIs Eliminadas:
- Ninguna
Ejemplos de uso:
PSDNET-1450. Implementar soporte de capa de mapa de degradado
string archivoFuente = Path.Combine(baseFolder, "gradiente_mapa_src.psd");
string archivoSalida = Path.Combine(outputFolder, "gradiente_mapa_src_output.psd");
using (PsdImage imagen = (PsdImage)Image.Load(archivoFuente))
{
    // Agregar capa de ajuste de mapa de degradado.
    GradientMapLayer capa = imagen.AddGradientMapAdjustmentLayer();
    capa.GradientSettings.Reverse = true;
    imagen.Save(archivoSalida);
}
// Verificar cambios guardados
using (PsdImage imagen = (PsdImage)Image.Load(archivoSalida))
{
    GradientMapLayer capaMapaDegradado = imagen.Layers[1] as GradientMapLayer;
    GradientFillSettings ajustesDegradado = (GradientFillSettings)capaMapaDegradado.GradientSettings;
    AssertAreEqual(0.0, ajustesDegradado.Angle);
    AssertAreEqual((short)4096, ajustesDegradado.Interpolation);
    AssertAreEqual(true, ajustesDegradado.Reverse);
    AssertAreEqual(false, ajustesDegradado.AlignWithLayer);
    AssertAreEqual(false, ajustesDegradado.Dither);
    AssertAreEqual(GradientType.Linear, ajustesDegradado.GradientType);
    AssertAreEqual(100, ajustesDegradado.Scale);
    AssertAreEqual(0.0, ajustesDegradado.HorizontalOffset);
    AssertAreEqual(0.0, ajustesDegradado.VerticalOffset);
    AssertAreEqual("Personalizado", ajustesDegradado.GradientName);
}
void AssertAreEqual(object esperado, object actual, string mensaje = null)
{
    if (!object.Equals(esperado, actual))
    {
        throw new Exception(mensaje ?? "Los objetos no son iguales.");
    }
}
PSDNET-1670. [Formato AI] Agregar soporte de metadatos de paquete XPacket al formato AI
string archivoFuente = Path.Combine(baseFolder, "ai_uno.ai");
void AssertAreEqual(object esperado, object actual)
{
    if (!object.Equals(esperado, actual))
    {
        throw new Exception("Los objetos no son iguales.");
    }
}
void AssertIsNotNull(object objetoPrueba)
{
    if (objetoPrueba == null)
    {
        throw new Exception("El objeto de prueba es nulo.");
    }
}
string claveHerramientaCreador = ":HerramientaCreador";
string claveNPaginas = "xmpTPg:NPaginas";
string claveUnidad = "stDim:unidad";
string claveAltura = "stDim:h";
string claveAncho = "stDim:w";
string herramientaCreadorEsperada = "Adobe Illustrator CC 22.1 (Windows)";
string nPaginasEsperadas = "1";
string unidadEsperada = "Píxeles";
double alturaEsperada = 768;
double anchoEsperado = 1366;
using (AiImage imagen = (AiImage)Image.Load(archivoFuente))
{
    // Se agregó metadatos Xmp.
    var metadatosXmp = imagen.XmpData;
    AssertIsNotNull(metadatosXmp);
    // Ahora podemos acceder a los paquetes Xmp de los archivos AI.
    var paqueteBasico = metadatosXmp.GetPackage(Namespaces.XmpBasic) as XmpBasicPackage;
    var paquete = metadatosXmp.Packages[4];
    // Y tenemos acceso al contenido de estos paquetes.
    var herramientaCreador = paqueteBasico[claveHerramientaCreador].ToString();
    var nPaginas = paquete[claveNPaginas];
    var unidad = paquete[claveUnidad];
    var altura = double.Parse(paquete[claveAltura].ToString(), CultureInfo.InvariantCulture);
    var ancho = double.Parse(paquete[claveAncho].ToString(), CultureInfo.InvariantCulture);
    AssertAreEqual(herramientaCreador, herramientaCreadorEsperada);
    AssertAreEqual(nPaginas, nPaginasEsperadas);
    AssertAreEqual(unidad, unidadEsperada);
    AssertAreEqual(altura, alturaEsperada);
    AssertAreEqual(ancho, anchoEsperado);
}
PSDNET-1831. Implementar tipos de deformación Inflate, Squeeze y Twist
string[] archivos = { "Twist", "Squeeze", "Squeeze_vert", "Inflate" };
foreach (string prefijo in archivos)
{
    string archivoFuente = Path.Combine(baseFolder, prefijo + ".psd");
    string archivoSalida = Path.Combine(outputFolder, prefijo + "_export.png");
    using (var imagenPsd = (PsdImage)Image.Load(archivoFuente, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true }))
    {
        imagenPsd.Save(archivoSalida, new PngOptions
        {
            ColorType = PngColorType.TruecolorWithAlpha
        });
    }
}
PSDNET-1653. Los modos Rgb y Lab no pueden contener menos de 3 canales o más de 4 canales en el archivo con capas de ArtBoard
string archivoFuente = Path.Combine(baseFolder, "Rgb5Canales.psb");
string archivoSalida = Path.Combine(outputFolder, "Rgb5Canales_output.psd");
using (PsdImage imagen = (PsdImage)Aspose.PSD.Image.Load(archivoFuente))
{
    // Aquí no debería haber excepción
    imagen.Save(archivoSalida);
}
PSDNET-1775. El área de procesamiento superior debe ser positiva. (Parámetro ‘areaToProcess’) en el procesamiento de archivos específicos
string archivoFuente = @"BANNERS_2_Intel-Gamer_psak.psd";
string archivoSalida = @"BANNERS_2_Intel-Gamer_psak_out.psd";
PsdLoadOptions opcionesCargaPsd = new PsdLoadOptions();
opcionesCargaPsd.LoadEffectsResource = true;
opcionesCargaPsd.AllowWarpRepaint = true;
using (PsdImage imagen = (PsdImage)PsdImage.Load(archivoFuente, opcionesCargaPsd))
{
    imagen.Save(archivoSalida);
    // No debería haber excepción
}
PSDNET-2052. La imagen ampliada sobre el lienzo se recorta después de guardar. Los datos se pierden pero la vista previa se ve correctamente
string archivoFuente = Path.Combine(baseFolder, "archivo_grande.psd");
string archivoSalida = Path.Combine(outputFolder, "archivo_grande_output.psd");
string imagenSalida = Path.Combine(outputFolder, "archivo_grande.png");
PsdLoadOptions opcionesCarga = new PsdLoadOptions()
{
    LoadEffectsResource = true,
    UseDiskForLoadEffectsResource = true
};
using (var imagenPsd = (PsdImage)Image.Load(archivoFuente, opcionesCarga))
{
    // No debería haber error aquí
    imagenPsd.Save(archivoSalida, new PsdOptions { CompressionMethod = CompressionMethod.RLE });
}
using (var imagenPsd = (PsdImage)Image.Load(archivoSalida, opcionesCarga))
{
    imagenPsd.Resize(imagenPsd.Width / 10, imagenPsd.Height / 10);
    // No debería haber error aquí
    imagenPsd.Save(imagenSalida, new PngOptions { ColorType = PngColorType.TruecolorWithAlpha });
}