Aspose.PSD für Java 20.3 - Versionshinweise
Schlüssel | Zusammenfassung | Kategorie |
---|---|---|
PSDJAVA-133 | Adobe Illustrator-Dateien in PDFs konvertieren | Feature |
PSDJAVA-134 | Füge die Möglichkeit hinzu, verschiedene Stile in einem Textebene zu rendern | Feature |
PSDJAVA-135 | Unterstützung der Schwarz-Weiß-Anpassungsebene | Feature |
PSDJAVA-137 | Hinzufügen der Unterstützung für den Export des AI-Formats (Version 8) in andere Formate | Feature |
PSDJAVA-138 | Unterstützung der Verarbeitung des PassThrough-Mischmodus (nur für Ebenengruppe verwendet) | Feature |
PSDJAVA-136 | Ausnahme: Bild kann nicht geladen werden beim Laden eines Bildes mit leerem Unicode Alpha Names-Ressourcen | Fehler |
PSDJAVA-139 | Falsche Ausgabe nach Ändern der Sichtbarkeit einer Ebenengruppe | Fehler |
PSDJAVA-140 | Ausnahme beim Laden des PSD-Bildes: Farbschnitt (DropShadow-Ressource) muss 3 Farbkomponenten für RGB oder 4 Farbkomponenten für CMYK enthalten | Fehler |
PSDJAVA-141 | Ausnahme, wenn versucht wird, auf eine neu erstellte Ebene zu zeichnen, wenn die einfache Version des Konstruktors verwendet wird | Fehler |
Öffentliche API-Änderungen
Hinzugefügte APIs:
- 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)
Entfernte APIs:
- 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)
Beispielanwendungen:
PSDJAVA-133. Adobe Illustrator-Dateien in PDFs konvertieren
String Eingabedatei = "rect2_color.ai";
String Ausgabedatei = "rect2_color.ai_output.pdf";
AiImage aiImage = (AiImage)Image.load(Eingabedatei);
try
{
aiImage.save(Ausgabedatei, new PdfOptions());
}
finally
{
aiImage.dispose();
}
PSDJAVA-134. Füge die Möglichkeit hinzu, verschiedene Stile in einer Textebene zu rendern
String EingabeDateiPfad = "text212.psd";
String AusgabeDateiPfad = "Output_text212.psd";
PsdImage Bild = (PsdImage)Image.load(EingabeDateiPfad);
try
{
Textebene textebene = (Textebene)Bild.getLayers()[1];
IText textDaten = textebene.getTextDaten();
ITextStyle standardStil = textDaten.producePortion().getStyle();
ITextParagraph standardAbsatz = textDaten.producePortion().getParagraph();
standardStil.setFillColor(Color.getDimGray());
standardStil.setFontSize(51);
textDaten.getItems()[1].getStyle().setStrikethrough(true);
ITextPortion[] neuePortionen = textDaten.producePortions(new String[] { "E=mc", "2\r", "Fett", "Kursiv\r", "Kleinschreibungstext" }, standardStil, standardAbsatz);
neuePortionen[0].getStyle().setUnderline(true); // Bearbeite den Textstil "E=mc"
neuePortionen[1].getStyle().setFontBaseline(FontBaseline.Superscript); // Bearbeite den Textstil "2\r"
neuePortionen[2].getStyle().setFauxBold(true); // Bearbeite den Textstil "Fett"
neuePortionen[3].getStyle().setFauxItalic(true); // Bearbeite den Textstil "Kursiv\r"
neuePortionen[3].getStyle().setBaselineShift(-25); // Bearbeite den Textstil "Kursiv\r"
neuePortionen[4].getStyle().setFontCaps(FontCaps.SmallCaps); // Bearbeite den Textstil "Kleinschreibungstext"
for (ITextPortion neuePortion : neuePortionen)
{
textDaten.addPortion(neuePortion);
}
textDaten.updateLayerData();
Bild.save(AusgabeDateiPfad);
}
finally
{
Bild.dispose();
}
PSDJAVA-135. Unterstützung der Schwarz-Weiß-Anpassungsebene
// Beispiel für die Unterstützung beim Hinzufügen der Schwarz-Weiß-Anpassungsebene zur Laufzeit.
String EingabeDateiName = "Stripes.psd";
String AusgabeDateiName = "Output" + EingabeDateiName;
PsdImage Bild = (PsdImage)Image.load(EingabeDateiName);
try
{
BlackWhiteAdjustmentLayer neueEbene = Bild.addBlackWhiteAdjustmentLayer();
neueEbene.setName("BlackWhiteAdjustmentLayer");
neueEbene.setReds(22);
neueEbene.setYellows(92);
neueEbene.setGreens(70);
neueEbene.setCyans(79);
neueEbene.setBlues(7);
neueEbene.setMagentas(28);
Bild.save(AusgabeDateiName, new PsdOptions());
}
finally
{
Bild.dispose();
}
// Beispiel für die Unterstützung der Schwarz-Weiß-Anpassungsebene.
EingabeDateiName = "BlackWhiteAdjustmentLayerStripesMask.psd";
AusgabeDateiName = "Output" + EingabeDateiName;
PsdImage Bild1 = (PsdImage)Image.load(EingabeDateiName);
try
{
BlackWhiteAdjustmentLayer blwhEbene = (BlackWhiteAdjustmentLayer)Bild1.getLayers()[1];
blwhEbene.setReds(15);
blwhEbene.setYellows(25);
blwhEbene.setGreens(35);
blwhEbene.setCyans(10);
blwhEbene.setBlues(50);
blwhEbene.setMagentas(105);
blwhEbene.setUseTint(true);
blwhEbene.setBwPresetKind(4);
blwhEbene.setBlackAndWhitePresetFileName("bwPresetsDateiname");
blwhEbene.setTintColorRed(60);
blwhEbene.setTintColorGreen(80);
blwhEbene.setTintColorBlue(200);
Bild1.save(AusgabeDateiName, new PsdOptions());
}
finally
{
Bild1.dispose();
}
PSDJAVA-137. Hinzufügen der Unterstützung für den Export des AI-Formats (Version 8) in andere Formate
// Beispiel für den Export der AI-Datei in PSD- und PNG-Format
String EingabeDateiName = "form_8.ai";
String AusgabeDateiPrefix = "form_8_export";
AiImage Bild = (AiImage)Image.load(EingabeDateiName);
try
{
Bild.save(AusgabeDateiPrefix + ".psd", new PsdOptions());
PngOptions pngOptionen = new PngOptions();
pngOptionen.setColorType(PngColorType.TruecolorWithAlpha);
Bild.save(AusgabeDateiPrefix + ".png", pngOptionen);
}
finally
{
Bild.dispose();
}
PSDJAVA-138. Unterstützung der Verarbeitung des PassThrough-Mischmodus (nur für Ebenengruppe verwendet).
class LokalerBereich
{
void istWahr(boolean bedingung, String nachricht)
{
if (!bedingung)
{
throw new FormatException(nachricht);
}
}
}
LokalerBereich lokalerBereich = new LokalerBereich();
String EingabeDateiName = "Apple.psd";
String AusgabeDateiName = "Output" + EingabeDateiName;
PsdImage Bild = (PsdImage)Image.load(EingabeDateiName);
try
{
lokalerBereich.istWahr(Bild.getLayers().length >= 23, "Es gibt keine 23. Ebene.");
LayerGroup ebene = (LayerGroup)Bild.getLayers()[23];
lokalerBereich.istWahr(ebene != null, "Die 23. Ebene ist keine Ebenengruppe.");
lokalerBereich.istWahr(ebene.getName().equals("AdjustmentGroup"), "Der Name der 23. Ebene ist nicht 'AdjustmentGroup'.");
lokalerBereich.istWahr(ebene.getBlendModeKey() == BlendMode.PassThrough, "Ebenengruppen-Ebene sollte den 'PassThrough'-Mischmodus haben.");
Bild.save(AusgabeDateiName, new PsdOptions());
PngOptions pngOptionen = new PngOptions();
pngOptionen.setColorType(PngColorType.TruecolorWithAlpha);
Bild.save("OutputApple.png", pngOptionen);
ebene.setBlendModeKey(BlendMode.Normal);
Bild.save("Normal" + AusgabeDateiName, new PsdOptions());
PngOptions pngOptionen1 = new PngOptions();
pngOptionen1.setColorType(PngColorType.TruecolorWithAlpha);
Bild.save("NormalOutputApple.png", pngOptionen1);
}
finally
{
Bild.dispose();
}
PSDJAVA-136. Ausnahme: Bild kann nicht geladen werden beim Laden eines Bildes mit leerem Unicode Alpha Names-Ressourcen
String EingabeDateiPfad = "apfel.psd";
PsdImage psdBild = null;
try
{
// Hier sollten keine Ausnahmen auftreten
psdBild = (PsdImage)Image.load(EingabeDateiPfad);
}
finally
{
if (psdBild != null) psdBild.dispose();
}
PSDJAVA-139. Falsche Ausgabe nach Ändern der Sichtbarkeit einer Ebenengruppe
String EingabeDateiName = "eingabe.psd";
String AusgabeDateiName = "ausgabe.psd";
// Änderungen an den Ebenennamen vornehmen und speichern
PsdImage Bild = (PsdImage)Image.load(EingabeDateiName);
try
{
for (int i = 0; i < Bild.getLayers().length; i++)
{
Layer ebene = Bild.getLayers()[i];
// Alles in einer Gruppe ausschalten
if (ebene instanceof LayerGroup)
{
ebene.setVisible(false);
}
}
Bild.save(AusgabeDateiName);
}
finally
{
Bild.dispose();
}
PSDJAVA-140. Ausnahme beim Laden des PSD-Bildes: Farbschnitt (DropShadow-Ressource) muss 3 Farbkomponenten für RGB oder 4 Farbkomponenten für CMYK enthalten
String EingabeDateiPfad = "sss0136=GUID-SSS0136=1=ar-sa=Low.psd";
PsdImage Bild = null;
try
{
Bild = (PsdImage)PsdImage.load(EingabeDateiPfad);
}
finally
{
if (Bild != null) Bild.dispose();
}
PSDJAVA-141. Ausnahme, wenn versucht wird, auf einer neu erstellten Ebene zu zeichnen, wenn die einfache Version des Konstruktors verwendet wird
String AusgabeDatei = "ausgabe.psd";
int Breite = 100;
int Höhe = 100;
PsdImage Bild = new PsdImage(Breite, Höhe);
try
{
Layer ebene = new Layer();
ebene.setBottom(Höhe);
ebene.setRight(Breite);
Bild.addLayer(ebene);
Graphics grafik = new Graphics(ebene);
grafik.clear(Color.getYellow());
// Zeichne ein Rechteck mit dem Stiftwerkzeug
grafik.drawRectangle(new Pen(Color.getRed()), new Rectangle(30, 10, 40, 80));
// Zeichne ein weiteres Rechteck mit einer Volltonfarbenbürste in Blau
grafik.drawRectangle(new Pen(new SolidBrush(Color.getBlue())), new Rectangle(10, 30, 80, 40));
Bild.save(AusgabeDatei);
}
finally
{
Bild.dispose();
}