Manipulation von Photoshop-Formaten

Farberstatzung in PSD-Ebenen

Aspose.PSD für Java ermöglicht es Ihnen, die Hintergrundfarbe jeder Ebene einer PSD-Datei zu ändern. Bitte verwenden Sie die Klasse Aspose.PSD.FileFormats.Psd.Layers.BackgroundColor, um die Hintergrundfarbe der Ebene in der PSD-Ebene zu ändern. Der folgende Codeausschnitt lädt eine PSD-Datei, greift auf die Ebene zu, aktualisiert die Hintergrundfarbe und speichert die PSD-Datei.

String dataDir = Utils.getDataDir(ColorReplacementInPSD.class) + "PSD/";
// Load a PSD file as an image and caste it into PsdImage
try (PsdImage image = (PsdImage) Image.load(dataDir + "sample.psd")) {
for (int i = 0; i < image.getLayers().length; i++) {
if (image.getLayers()[i].getName() == "Rectangle 1") {
Layer layer = image.getLayers()[i];
int dd = 0;
layer.hasBackgroundColor();
layer.setBackgroundColor(Color.getOrange());
}
}
image.save(dataDir + "asposeImage02.psd");
}

Aktualisieren des Textlayers in der PSD-Datei

Aspose.PSD für Java ermöglicht es Ihnen, den Text im Textlayer einer PSD-Datei zu manipulieren. Bitte verwenden Sie die Klasse Aspose.PSD.FileFormats.Psd.Layers.TextLayer, um den Text in der PSD-Ebene zu aktualisieren. Der folgende Codeausschnitt lädt eine PSD-Datei, greift auf den Textlayer zu, aktualisiert den Text und speichert die PSD-Datei mit einem neuen Namen unter Verwendung der Methode Aspose.PSD.FileFormats.Psd.Layers.TextLayer.UpdateText.

String dataDir = Utils.getDataDir(UpdateTextLayerInPSDFile.class) + "PSD/";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "layers.psd")) {
for (int i = 0; i < psdImage.getLayers().length; i++) {
if (psdImage.getLayers()[i] instanceof TextLayer) {
TextLayer textLayer = (TextLayer) psdImage.getLayers()[i];
textLayer.updateText("test update", new Point(0, 0), 15.0f, Color.getPurple());
}
}
psdImage.save(dataDir + "UpdateTextLayerInPSDFile_out.psd");
}

Erkennen von zusammengeführten PSDs

Aspose.PSD für Java ermöglicht es Ihnen, zu erkennen, ob eine bestimmte PSD-Datei zusammengeführt ist oder nicht. Die IsFlatten-Eigenschaft wurde in der Klasse Aspose.PSD.FileFormats.Psd.PsdImage eingeführt, um diese Funktionalität zu erreichen. Der folgende Codeausschnitt lädt eine PSD-Datei und greift auf die Eigenschaft IsFlatten zu.

String dataDir = Utils.getDataDir(DetectFlattenedPSD.class) + "PSD/";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "layers.psd")) {
// Do processing, Get the true value if PSD is flatten and false in case the PSD is not flatten.
System.out.println(psdImage.isFlatten());
}

Zusammenführen von PSD-Ebenen

Dieser Artikel zeigt, wie man Ebenen in einer PSD-Datei zusammenführt, während man eine PSD-Datei in JPG mit Aspose.PSD konvertiert. Im folgenden Beispiel wird eine vorhandene PSD-Datei geladen, indem der Dateipfad an die statische Load-Methode der Image-Klasse übergeben wird. Sobald sie geladen ist, konvertieren/gießen Sie das Bild in PsdImage um. Erstellen Sie eine Instanz der JpegOptions-Klasse und setzen Sie verschiedene Eigenschaften. Rufen Sie jetzt die Save-Methode der PsdImage-Instanz auf. Der folgende Codeausschnitt zeigt Ihnen, wie man PSD-Ebenen zusammenführt.

String dataDir = Utils.getDataDir(MergePSDLayers.class) + "PSD/";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "layers.psd")) {
// Create JPEG option class object, Set its properties and save image
JpegOptions jpgOptions = new JpegOptions();
psdImage.save(dataDir + "MergePSDlayers_output.jpg", jpgOptions);
}

Unterstützung von Graustufen mit Alpha für PSD

Dieser Artikel zeigt, wie man Graustufen mit Alpha für eine PSD-Datei unterstützt, während man eine PSD-Datei in PNG mit Aspose.PSD konvertiert. Im folgenden Beispiel wird eine vorhandene PSD-Datei geladen, indem der Dateipfad an die statische Load-Methode der Image-Klasse übergeben wird. Sobald sie geladen ist, konvertieren/gießen Sie das Bild in PsdImage um. Erstellen Sie eine Instanz der PngOptions-Klasse und setzen Sie ihre verschiedenen Eigenschaften. Setzen Sie die ColorType-Eigenschaft auf TruecolorWithAlpha. Rufen Sie jetzt die Save-Methode der PngOptions-Instanz auf. Der folgende Codeausschnitt zeigt Ihnen, wie man in Graustufen PNG mit Alpha konvertiert.

String dataDir = Utils.getDataDir(GrayScaleSupportForAlpha.class) + "PSD/";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd")) {
// Create an instance of PngOptions class
PngOptions pngOptions = new PngOptions();
pngOptions.setColorType(PngColorType.TruecolorWithAlpha);
psdImage.save(dataDir + "GrayScaleSupportForAlpha_out.png", pngOptions);
}

Unterstützung von Ebeneneffekten für PSD

Dieser Artikel zeigt, wie man verschiedene Effekte wie Weichzeichner, Innerer Glow, Äußerer Glow für PSD-Ebenen unterstützt. Der folgende Codeausschnitt zeigt Ihnen, wie man Ebeneneffekte unterstützt.

String dataDir = Utils.getDataDir(SupportLayerForPSD.class) + "PSD/";
String sourceFileName = dataDir + "layers.psd";
String output = dataDir + "layers.png";
PsdLoadOptions imageLoadOptions = new PsdLoadOptions();
imageLoadOptions.setLoadEffectsResource(true);
imageLoadOptions.setUseDiskForLoadEffectsResource(true);
try (PsdImage image = (PsdImage) Image.load(sourceFileName, imageLoadOptions)) {
PngOptions saveOptions = new PngOptions();
saveOptions.setColorType(PngColorType.TruecolorWithAlpha);
image.save(output, saveOptions);
}

Unterstützung des Erstellungsdatums und der Uhrzeit von Textebenen

Dieser Artikel zeigt, wie man das Erstellungsdatum und die Uhrzeit von Textebenen für PSD unterstützt. Der folgende Codeausschnitt zeigt Ihnen, wie man Ebenen erstellt.

String dataDir = Utils.getDataDir(LayerCreationDateTime.class) + "PSD/";
String sourceName = dataDir + "OneLayer.psd";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage im = (PsdImage) Image.load(sourceName)) {
Layer layer = im.getLayers()[0];
Date creationDateTime = layer.getLayerCreationDateTime();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date expectedDateTime = new Date("2018/7/17 8:57:24");
Assert.areEqual(expectedDateTime, creationDateTime);
Date now = new Date();
Layer createdLayer = im.addLevelsAdjustmentLayer();
}