Notas de la versión Aspose.PSD para Java 20.3
Clave | Resumen | Categoría |
---|---|---|
PSDJAVA-133 | Convertir archivos de Adobe Illustrator en PDF | Característica |
PSDJAVA-134 | Agregar la capacidad de representar diferentes estilos en una capa de texto | Característica |
PSDJAVA-135 | Soporte de Capa de Ajuste en Blanco y Negro | Característica |
PSDJAVA-137 | Agregar soporte para exportar formato AI (Versión 8) a otros formatos | Característica |
PSDJAVA-138 | Soporte del modo de mezcla “PassThrough” (Solo utilizado para Grupos de Capas) | Característica |
PSDJAVA-136 | Excepción: Falla al cargar la imagen al cargar una imagen con Recurso de Nombres Alfa Unicode vacío | Error |
PSDJAVA-139 | Salida incorrecta después de cambiar la visibilidad de un Grupo de Capas | Error |
PSDJAVA-140 | Excepción al cargar la imagen PSD: La sección de color (Recurso de Sombra Paralela) debe contener 3 componentes de color para RGB o 4 componentes de color para CMYK | Error |
PSDJAVA-141 | Excepción si se intenta dibujar en una capa recién creada si se utiliza la versión simple del Constructor | Error |
Cambios en la API pública
APIs añadidas:
- M:com.aspose.psd.fileformats.psd.PsdImage.addBlackWhiteAdjustmentLayer
- M:com.aspose.psd.fileformats.psd.PsdImage.addExposureAdjustmentLayer(float)
- M:com.aspose.psd.fileformats.psd.PsdImage.addExposureAdjustmentLayer(float,float)
- T:com.aspose.psd.fileformats.psd.PsdVersion
- F:com.aspose.psd.fileformats.psd.PsdVersion.Psb
- F:com.aspose.psd.fileformats.psd.PsdVersion.Psd
- F:com.aspose.psd.fileformats.psd.layers.BlendMode.Absent
- M:com.aspose.psd.fileformats.psd.layers.ChannelInformation.#ctor(short,byte[],byte[])
- M:com.aspose.psd.fileformats.psd.layers.Layer.#ctor(com.aspose.psd.RasterImage)
- M:com.aspose.psd.fileformats.psd.layers.Layer.#ctor(com.aspose.psd.internal.ij.k,com.aspose.psd.IColorPalette)
- M:com.aspose.psd.fileformats.psd.layers.LayerGroup.getBlendModeKey
- M:com.aspose.psd.fileformats.psd.layers.LayerGroup.setBlendModeKey(long)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesContinuousManager.getChannelsCount
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesContinuousManager.isChannelUsed(int)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesDiscreteManager.#ctor(int)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesDiscreteManager.getChannelsCount
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesDiscreteManager.isChannelUsed(int)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesManager.getChannelsCount
- M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesManager.isChannelUsed(int)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.LayerSectionResource.setBlendModeKey(long)
- M:com.aspose.psd.fileformats.psd.layers.text.IText.producePortions(java.lang.String[],com.aspose.psd.fileformats.psd.layers.text.ITextStyle,com.aspose.psd.fileformats.psd.layers.text.ITextParagraph)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getBaselineShift
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFauxBold
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFauxItalic
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFontBaseline
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFontCaps
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getStrikethrough
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getUnderline
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setBaselineShift(double)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFauxBold(boolean)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFauxItalic(boolean)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFontBaseline(int)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFontCaps(int)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setLeading(double)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setStrikethrough(boolean)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setUnderline(boolean)
- T:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline
- F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline.None
- F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline.Subscript
- F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline.Superscript
- T:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps
- F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps.AllCaps
- F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps.None
- F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps.SmallCaps
- M:com.aspose.psd.sources.StreamSource.#ctor(java.io.OutputStream)
- M:com.aspose.psd.sources.StreamSource.#ctor(java.io.OutputStream,boolean)
APIs eliminadas:
- M:com.aspose.psd.fileformats.psd.layers.Layer.setVisibleInGroup(boolean)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.LayerSectionResource.setBlendModeKey(java.lang.String)
- M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setLeading(int)
Ejemplos de uso:
PSDJAVA-133. Convertir archivos de Adobe Illustrator en PDF
String inFile = "rect2_color.ai";
String outFile = "rect2_color.ai_output.pdf";
AiImage aiImage = (AiImage)Image.load(inFile);
try
{
aiImage.save(outFile, new PdfOptions());
}
finally
{
aiImage.dispose();
}
PSDJAVA-134. Agregar la capacidad de representar diferentes estilos en una capa de texto
String inFilePath = "text212.psd";
String outFilePath = "Output_text212.psd";
PsdImage image = (PsdImage)Image.load(inFilePath);
try
{
TextLayer textLayer = (TextLayer)image.getLayers()[1];
IText textData = textLayer.getTextData();
ITextStyle defaultStyle = textData.producePortion().getStyle();
ITextParagraph defaultParagraph = textData.producePortion().getParagraph();
defaultStyle.setFillColor(Color.getDimGray());
defaultStyle.setFontSize(51);
textData.getItems()[1].getStyle().setStrikethrough(true);
ITextPortion[] newPortions = textData.producePortions(new String[] { "E=mc", "2\r", "Negrita", "Cursiva\r", "Texto en minúsculas" }, defaultStyle, defaultParagraph);
newPortions[0].getStyle().setUnderline(true); // editar estilo de texto "E=mc"
newPortions[1].getStyle().setFontBaseline(FontBaseline.Superscript); // editar estilo de texto "2\r"
newPortions[2].getStyle().setFauxBold(true); // editar estilo de texto "Negrita"
newPortions[3].getStyle().setFauxItalic(true); // editar estilo de texto "Cursiva\r"
newPortions[3].getStyle().setBaselineShift(-25); // editar estilo de texto "Cursiva\r"
newPortions[4].getStyle().setFontCaps(FontCaps.SmallCaps); // editar estilo de texto "Texto en minúsculas"
for (ITextPortion newPortion : newPortions)
{
textData.addPortion(newPortion);
}
textData.updateLayerData();
image.save(outFilePath);
}
finally
{
image.dispose();
}
PSDJAVA-135. Soporte de Capa de Ajuste en Blanco y Negro
// Ejemplo del soporte para agregar la capa de ajuste en blanco y negro en tiempo de ejecución.
String inFileName = "Stripes.psd";
String outFileName = "Salida" + inFileName;
PsdImage image = (PsdImage)Image.load(inFileName);
try
{
BlackWhiteAdjustmentLayer nuevaCapa = image.addBlackWhiteAdjustmentLayer();
nuevaCapa.setName("CapaAjusteBlancoYNegro");
nuevaCapa.setRojos(22);
nuevaCapa.setAmarillos(92);
nuevaCapa.setVerdes(70);
nuevaCapa.setCianos(79);
nuevaCapa.setAzules(7);
nuevaCapa.setMagentas(28);
image.save(outFileName, new PsdOptions());
}
finally
{
image.dispose();
}
// Ejemplo del soporte de la capa de ajuste en blanco y negro.
inFileName = "BlackWhiteAdjustmentLayerStripesMask.psd";
outFileName = "Salida" + inFileName;
PsdImage image1 = (PsdImage)Image.load(inFileName);
try
{
BlackWhiteAdjustmentLayer capaBlwh = (BlackWhiteAdjustmentLayer)image1.getLayers()[1];
capaBlwh.setRojos(15);
capaBlwh.setAmarillos(25);
capaBlwh.setVerdes(35);
capaBlwh.setCianos(10);
capaBlwh.setAzules(50);
capaBlwh.setMagentas(105);
capaBlwh.setUsarTinte(true);
capaBlwh.setBwPresetKind(4);
capaBlwh.setBlackAndWhitePresetFileName("bwPresetFileName");
capaBlwh.setTinteColorRojo(60);
capaBlwh.setTinteColorVerde(80);
capaBlwh.setTinteColorAzul(200);
image1.save(outFileName, new PsdOptions());
}
finally
{
image1.dispose();
}
PSDJAVA-137. Agregar soporte para exportar formato AI (Versión 8) a otros formatos
// Ejemplo de exportar un archivo AI a los formatos PSD y PNG
String inFileName = "form_8.ai";
String outFileNamePrefijo = "form_8_export";
AiImage image = (AiImage)Image.load(inFileName);
try
{
image.save(outFileNamePrefijo + ".psd", new PsdOptions());
PngOptions opcionesPng = new PngOptions();
opcionesPng.setColorType(PngColorType.TruecolorWithAlpha);
image.save(outFileNamePrefijo + ".png", opcionesPng);
}
finally
{
image.dispose();
}
PSDJAVA-138. Soporte del modo de mezcla “PassThrough” (Usado solo para Grupos de Capas)
class LocalScope
{
void assertIsTrue(boolean condicion, String mensaje)
{
if (!condicion)
{
throw new FormatException(mensaje);
}
}
}
LocalScope localScope = new LocalScope();
String inFileName = "Apple.psd";
String outFileName = "Salida" + inFileName;
PsdImage image = (PsdImage)Image.load(inFileName);
try
{
localScope.assertIsTrue(image.getLayers().length >= 23, "No hay una 23ª capa.");
LayerGroup capa = (LayerGroup)image.getLayers()[23];
localScope.assertIsTrue(capa != null, "La 23ª capa no es un grupo de capas.");
localScope.assertIsTrue(capa.getNombre().equals("GrupoAjuste"), "El nombre de la 23ª capa no es 'GrupoAjuste'.");
localScope.assertIsTrue(capa.getBlendModeKey() == BlendMode.PassThrough, "La capa de grupo de ajuste debería tener el modo de mezcla 'PassThrough'.");
image.save(outFileName, new PsdOptions());
PngOptions opcionesPng = new PngOptions();
opcionesPng.setColorType(PngColorType.TruecolorWithAlpha);
image.save("SalidaApple.png", opcionesPng);
capa.setBlendModeKey(BlendMode.Normal);
image.save("Normal" + outFileName, new PsdOptions());
PngOptions opcionesPng1 = new PngOptions();
opcionesPng1.setColorType(PngColorType.TruecolorWithAlpha);
image.save("NormalSalidaApple.png", opcionesPng1);
}
finally
{
image.dispose();
}
PSDJAVA-136. Excepción: Falla al cargar la imagen al cargar una imagen con Recurso de Nombres Alfa Unicode vacío
String inFilePath = "apple.psd";
PsdImage imagenPsd = null;
try
{
// Aquí no deberíamos obtener excepciones
imagenPsd = (PsdImage)Image.load(inFilePath);
}
finally
{
if (imagenPsd != null) imagenPsd.dispose();
}
PSDJAVA-139. Salida incorrecta después de cambiar la visibilidad de un Grupo de Capas
String inFileName = "input.psd";
String outFileName = "output.psd";
// Realizar cambios en los nombres de las capas y guardarlos
PsdImage imagen = (PsdImage)Image.load(inFileName);
try
{
for (int i = 0; i < imagen.getLayers().length; i++)
{
Layer capa = imagen.getLayers()[i];
// Apagar todo dentro de un grupo
if (capa instanceof LayerGroup)
{
capa.setVisible(false);
}
}
imagen.save(outFileName);
}
finally
{
imagen.dispose();
}
PSDJAVA-140. Excepción al cargar la imagen PSD: La sección de color (Recurso de Sombra Paralela) debe contener 3 componentes de color para RGB o 4 componentes de color para CMYK
String inFilePath = "sss0136=GUID-SSS0136=1=ar-sa=Low.psd";
PsdImage imagen = null;
try
{
imagen = (PsdImage)PsdImage.load(inFilePath);
}
finally
{
if (imagen != null) imagen.dispose();
}
PSDJAVA-141. Excepción si se intenta dibujar en una capa recién creada si se utiliza la versión simple del Constructor
String outputFile = "output.psd";
int ancho = 100;
int alto = 100;
PsdImage imagen = new PsdImage(ancho, alto);
try
{
Layer capa = new Layer();
capa.setBottom(alto);
capa.setRight(ancho);
imagen.addLayer(capa);
Graphics grafico = new Graphics(capa);
grafico.clear(Color.getYellow());
// dibujar un rectángulo con la herramienta de Pluma
grafico.drawRectangle(new Pen(Color.getRed()), new Rectangle(30, 10, 40, 80));
// dibujar otro rectángulo con un Pincel Sólido en color Azul
grafico.drawRectangle(new Pen(new SolidBrush(Color.getBlue())), new Rectangle(10, 30, 80, 40));
imagen.save(outputFile);
}
finally
{
imagen.dispose();
}