Memanipulasi Format Photoshop
Penggantian Warna pada Lapisan PSD
Aspose.PSD untuk Java memungkinkan Anda untuk mengubah warna latar belakang dari setiap lapisan dalam file PSD. Silakan gunakan kelas Aspose.PSD.FileFormats.Psd.Layers.BackgroundColor untuk mengubah warna latar belakang lapisan dalam lapisan PSD. Potongan kode berikut memuat file PSD, akses lapisan, perbarui warna latar belakang, dan simpan file PSD.
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"); | |
} |
Memperbarui Lapisan Teks dalam File PSD
Aspose.PSD untuk Java memungkinkan Anda untuk memanipulasi teks dalam lapisan teks dari file PSD. Silakan gunakan kelas Aspose.PSD.FileFormats.Psd.Layers.TextLayer untuk memperbarui teks pada lapisan PSD. Potongan kode berikut memuat file PSD, akses lapisan teks, perbarui teks, dan simpan file PSD dengan nama baru menggunakan metode 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"); | |
} |
Mendeteksi PSD yang Telah Diratakan
Aspose.PSD untuk Java memungkinkan Anda untuk mendeteksi apakah file PSD yang diberikan telah diratakan atau tidak. Properti IsFlatten telah diperkenalkan dalam kelas Aspose.PSD.FileFormats.Psd.PsdImage untuk mencapai fungsionalitas ini. Potongan kode berikut memuat file PSD dan mengakses properti IsFlatten.
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()); | |
} |
Menggabungkan Lapisan PSD
Artikel ini menunjukkan cara menggabungkan lapisan dalam file PSD saat mengonversi file PSD menjadi JPG dengan Aspose.PSD. Pada contoh di bawah ini, file PSD yang ada dimuat dengan melewatkan jalur file ke metode Load statis kelas Image. Setelah dimuat, konversikan/cast gambar ke PsdImage. Buat instance kelas JpegOptions dan atur berbagai propertinya. Sekarang panggil metode Save dari instansi PsdImage. Potongan kode berikut menunjukkan cara menggabungkan lapisan PSD.
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); | |
} |
Dukungan GrayScale dengan Alpha untuk PSD
Artikel ini menunjukkan cara mendukung GrayScale dengan alpha untuk file PSD saat mengonversi file PSD ke PNG dengan Aspose.PSD. Pada contoh di bawah ini, file PSD yang ada dimuat dengan melewatkan jalur file ke metode Load statis kelas Image. Setelah dimuat, konversikan/cast gambar ke PsdImage. Buat instance dari kelas PngOptions dan atur berbagai propertinya. Atur properti ColorType ke TruecolorWithAlpha. Sekarang panggil metode Save dari instansi PngOptions. Potongan kode berikut menunjukkan cara mengonversi ke Grayscale PNG dengan Alpha.
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); | |
} |
Dukungan Efek Lapisan untuk PSD
Artikel ini menunjukkan cara mendukung efek berbeda seperti Blur, Inner Glow, Outer Glow untuk lapisan PSD. Potongan kode berikut menunjukkan cara mendukung efek lapisan.
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); | |
} |
Dukungan Tanggal dan Waktu Pembuatan Lapisan
Artikel ini menunjukkan cara mendukung tanggal dan waktu pembuatan lapisan untuk lapisan PSD. Potongan kode berikut menunjukkan cara membuat lapisan.
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(); | |
} |
Dukungan Pewarnaan Lembar Sorot
Artikel ini menunjukkan cara memuat gambar psd lalu mengubah serta menyorot warna lembar dan menyimpannya sebagai gambar. Potongan kode telah disediakan.
String dataDir = Utils.getDataDir(SheetColorHighlighting.class) + "PSD/"; | |
String sourceFileName = dataDir + "SheetColorHighlightExample.psd"; | |
String exportPath = dataDir + "SheetColorHighlightExampleChanged.psd"; | |
// Load a PSD file as an image and cast it into PsdImage | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
Layer layer1 = im.getLayers()[0]; | |
Assert.areEqual(SheetColorHighlightEnum.Violet, layer1.getSheetColorHighlight()); | |
Layer layer2 = im.getLayers()[1]; | |
Assert.areEqual(SheetColorHighlightEnum.Orange, layer2.getSheetColorHighlight()); | |
layer1.setSheetColorHighlight(SheetColorHighlightEnum.Yellow); | |
im.save(exportPath); | |
} |
Dukungan Lapisan Teks pada Runtime
Artikel ini menunjukkan cara menambahkan lapisan teks pada runtime untuk gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(AddEffectAtRunTime.class) + "DrawingAndFormattingImages/"; | |
String sourceFileName = dataDir + "ThreeRegularLayers.psd"; | |
String exportPath = dataDir + "ThreeRegularLayersChanged.psd"; | |
PsdLoadOptions loadOptions = new PsdLoadOptions(); | |
loadOptions.setLoadEffectsResource(true); | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName, loadOptions)) { | |
ColorOverlayEffect effect = im.getLayers()[1].getBlendingOptions().addColorOverlay(); | |
effect.setColor(Color.getGreen()); | |
effect.setOpacity((byte) 128); | |
effect.setBlendMode(BlendMode.Normal); | |
im.save(exportPath); | |
} |
Dukungan Lapisan Penyesuaian
Artikel ini menunjukkan cara menyesuaikan lapisan dan jika lapisan null maka menggabungkan lapisan dan menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(SupportOfAdjusmentLayers.class) + "PSD/"; | |
// Channel Mixer Adjustment Layer | |
String sourceFileName1 = dataDir + "ChannelMixerAdjustmentLayer.psd"; | |
String exportPath1 = dataDir + "ChannelMixerAdjustmentLayerChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName1)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof AdjustmentLayer) { | |
AdjustmentLayer adjustmentLayer = (AdjustmentLayer) im.getLayers()[i]; | |
if (adjustmentLayer != null) { | |
adjustmentLayer.mergeLayerTo(im.getLayers()[0]); | |
} | |
} | |
} | |
// Save PSD | |
im.save(exportPath1); | |
} | |
// Levels adjustment layer | |
String sourceFileName2 = dataDir + "LevelsAdjustmentLayerRgb.psd"; | |
String exportPath2 = dataDir + "LevelsAdjustmentLayerRgbChanged.psd"; | |
try (PsdImage img = (PsdImage) Image.load(sourceFileName2)) { | |
for (int i = 0; i < img.getLayers().length; i++) { | |
if (img.getLayers()[i] instanceof AdjustmentLayer) { | |
AdjustmentLayer adjustmentLayer = (AdjustmentLayer) img.getLayers()[i]; | |
if (adjustmentLayer != null) { | |
adjustmentLayer.mergeLayerTo(img.getLayers()[0]); | |
} | |
} | |
} | |
// Save PSD | |
img.save(exportPath2); | |
} |
Mengelola Kecerahan dan Kontras pada Lapisan Penyesuaian
Artikel ini menunjukkan cara menjelajahi lapisan dan mengelola kecerahan dan kontras dalam lapisan dan kemudian menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(ManageBrightnessContrastAdjustmentLayer.class) + "PSD/"; | |
// Brightness/Contrast layer editing | |
String sourceFileName = dataDir + "BrightnessContrastModern.psd"; | |
String psdPathAfterChange = dataDir + "BrightnessContrastModernChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof BrightnessContrastLayer) { | |
BrightnessContrastLayer brightnessContrastLayer = (BrightnessContrastLayer) im.getLayers()[i]; | |
brightnessContrastLayer.setBrightness(50); | |
brightnessContrastLayer.setContrast(50); | |
} | |
} | |
// Save PSD | |
im.save(psdPathAfterChange); | |
} |
Mengelola Lapisan Pemaparan
Artikel ini menunjukkan cara menambahkan dan mengedit lapisan pemaparan dan mengelola lapisan pemaparan dan kemudian menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(ManageExposureAdjustmentLayer.class) + "PSD/"; | |
// Exposure layer editing | |
String sourceFileName = dataDir + "ExposureAdjustmentLayer.psd"; | |
String psdPathAfterChange = dataDir + "ExposureAdjustmentLayerChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof ExposureLayer) { | |
ExposureLayer expLayer = (ExposureLayer) im.getLayers()[i]; | |
expLayer.setExposure(2); | |
expLayer.setOffset(-0.25f); | |
expLayer.setGammaCorrection(0.5f); | |
} | |
} | |
im.save(psdPathAfterChange); | |
} | |
// Exposure layer adding | |
sourceFileName = dataDir + "PhotoExample.psd"; | |
psdPathAfterChange = dataDir + "PhotoExampleAddedExposure.psd"; | |
try (PsdImage img = (PsdImage) Image.load(sourceFileName)) { | |
ExposureLayer newlayer = img.addExposureAdjustmentLayer(10, -0.25f, 2f); | |
img.save(psdPathAfterChange); | |
} |
Mengelola Lapisan Pengaturan Pencampur Saluran
Artikel ini menunjukkan cara mengelola lapisan penyesuaian dan mengatur warna yang berbeda dan kemudian menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(ManageChannelMixerAdjusmentLayer.class) + "PSD/"; | |
// Rgb Channel Mixer | |
String sourceFileName = dataDir + "ChannelMixerAdjustmentLayerRgb.psd"; | |
String psdPathAfterChange = dataDir + "ChannelMixerAdjustmentLayerRgbChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof RgbChannelMixerLayer) { | |
RgbChannelMixerLayer rgbLayer = (RgbChannelMixerLayer) im.getLayers()[i]; | |
rgbLayer.getRedChannel().setBlue((short) 100); | |
rgbLayer.getBlueChannel().setGreen((short) -100); | |
rgbLayer.getGreenChannel().setConstant((short) 50); | |
} | |
} | |
im.save(psdPathAfterChange); | |
} | |
// Adding the new layer(Cmyk for this example) | |
sourceFileName = dataDir + "CmykWithAlpha.psd"; | |
psdPathAfterChange = dataDir + "ChannelMixerAdjustmentLayerCmykChanged.psd"; | |
try (PsdImage img = (PsdImage) Image.load(sourceFileName)) { | |
ChannelMixerLayer newlayer = img.addChannelMixerAdjustmentLayer(); | |
newlayer.getChannelByIndex(2).setConstant((short) 50); | |
newlayer.getChannelByIndex(0).setConstant((short) 50); | |
img.save(psdPathAfterChange); | |
} |
Menggabungkan Lapisan PSD ke Lapisan Lain
Artikel ini menunjukkan cara menggabungkan lapisan ke lapisan lain dalam file PSD dengan Aspose.PSD. Pada contoh di bawah ini, file PSD yang ada dimuat dengan melewatkan jalur file ke metode Load statis kelas Image. Sekarang panggil metode Save dari instansi PsdImage. Potongan kode berikut menunjukkan cara menggabungkan lapisan PSD.
String dataDir = Utils.getDataDir(MergeOnePSDlayerToOther.class) + "PSD/"; | |
String sourceFile1 = dataDir + "FillOpacitySample.psd"; | |
String sourceFile2 = dataDir + "ThreeRegularLayersSemiTransparent.psd"; | |
String exportPath = dataDir + "MergedLayersFromTwoDifferentPsd.psd"; | |
try (PsdImage im1 = (PsdImage) Image.load(sourceFile1); | |
PsdImage im2 = (PsdImage) Image.load(sourceFile2)) { | |
Layer layer1 = im1.getLayers()[1]; | |
Layer layer2 = im2.getLayers()[0]; | |
layer1.mergeLayerTo(layer2); | |
im2.save(exportPath); | |
} |
Dukungan Untuk Kotak Batas Teks
Artikel ini menunjukkan cara Mendukung kotak batas teks dalam file PSD dengan Aspose.PSD. Pada contoh di bawah ini, file PSD yang ada dimuat dengan melewatkan jalur file ke metode Load statis kelas Image. TextBoundBox adalah ukuran lapisan maksimum untuk lapisan Teks. Sekarang panggil metode Save dari instansi PsdImage. Potongan kode berikut menunjukkan cara menggabungkan lapisan PSD.
String dataDir = Utils.getDataDir(TextLayerBoundBox.class) + "PSD/"; | |
String sourceFileName = dataDir + "LayerWithText.psd"; | |
Size correctOpticalSize = new Size(127, 45); | |
Size correctBoundBox = new Size(172, 62); | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
TextLayer textLayer = (TextLayer) im.getLayers()[1]; | |
// Size of the layer is the size of the rendered area | |
Size opticalSize = textLayer.getSize(); | |
Assert.areEqual(correctOpticalSize, opticalSize); | |
// TextBoundBox is the maximum layer size for Text Layer. | |
// In this area PS will try to fit your text | |
Size boundBox = textLayer.getTextBoundBox(); | |
Assert.areEqual(correctBoundBox, boundBox); | |
} |
Dukungan Untuk Sumber Daya IOPA
Artikel ini menunjukkan cara mendukung sumber daya IOPA dalam file PSD dengan Aspose.PSD. Potongan kode berikut menunjukkan cara mendukung IOPA dalam lapisan PSD.
String dataDir = Utils.getDataDir(AddIopaResource.class) + "PSD/"; | |
String sourceFileName = dataDir + "FillOpacitySample.psd"; | |
String exportPath = dataDir + "FillOpacitySampleChanged.psd"; | |
try (PsdImage im = (PsdImage) (Image.load(sourceFileName))) { | |
Layer layer = im.getLayers()[2]; | |
LayerResource[] resources = layer.getResources(); | |
for (int i = 0; i < resources.length; i++) { | |
if (resources[i] instanceof IopaResource) { | |
IopaResource iopaResource = (IopaResource) resources[i]; | |
iopaResource.setFillOpacity((byte) 200); | |
} | |
} | |
im.save(exportPath); | |
} |
Mengelola Opasitas Lapisan
Artikel ini menunjukkan cara mengelola opasitas lapisan dalam file PSD dengan Aspose.PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(FillOpacityOfLayers.class) + "PSD/"; | |
// Change the Fill Opacity property | |
String sourceFileName = dataDir + "FillOpacitySample.psd"; | |
String exportPath = dataDir + "FillOpacitySampleChanged.psd"; | |
try (PsdImage im = (PsdImage) (Image.load(sourceFileName))) { | |
Layer layer = im.getLayers()[2]; | |
layer.setFillOpacity(5); | |
im.save(exportPath); | |
} |
Rendering Lapisan Penyesuaian Kurva
Artikel ini menunjukkan cara merender penyesuaian kurva lapisan dalam file PSD dan merendernya ke PNG juga dengan Aspose.PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(RenderingOfCurvesAdjustmentLayer.class) + "PSD/"; | |
// Curves layer editing | |
String sourceFileName = dataDir + "CurvesAdjustmentLayer"; | |
String psdPathAfterChange = dataDir + "CurvesAdjustmentLayerChanged"; | |
String pngExportPath = dataDir + "CurvesAdjustmentLayerChanged"; | |
for (int j = 1; j < 2; j++) { | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName + Integer.toString(j) + ".psd")) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof CurvesLayer) { | |
CurvesLayer curvesLayer = (CurvesLayer) im.getLayers()[i]; | |
if (curvesLayer.isDiscreteManagerUsed()) { | |
CurvesDiscreteManager manager = (CurvesDiscreteManager) curvesLayer.getCurvesManager(); | |
for (int k = 10; k < 50; k++) { | |
manager.setValueInPosition(0, (byte) k, (byte) (15 + (k * 2))); | |
} | |
} else { | |
CurvesContinuousManager manager = (CurvesContinuousManager) curvesLayer.getCurvesManager(); | |
manager.addCurvePoint((byte) 0, (byte) 50, (byte) 100); | |
manager.addCurvePoint((byte) 0, (byte) 150, (byte) 130); | |
} | |
} | |
} | |
// Save PSD | |
im.save(psdPathAfterChange + Integer.toString(j) + ".psd"); | |
// Save PNG | |
PngOptions saveOptions = new PngOptions(); | |
saveOptions.setColorType(PngColorType.TruecolorWithAlpha); | |
im.save(pngExportPath + Integer.toString(j) + ".png", saveOptions); | |
} | |
} |
Menambahkan Lapisan Penyesuaian Kurva
Artikel ini menunjukkan cara menambahkan lapisan penyesuaian kurva dalam file PSD dengan Aspose.PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(AddCurvesAdjustmentLayer.class) + "PSD/"; | |
// Curves layer editing | |
String sourceFileName = dataDir + "CurvesAdjustmentLayer"; | |
String psdPathAfterChange = dataDir + "CurvesAdjustmentLayerChanged"; | |
for (int j = 1; j < 2; j++) { | |
String fileName = sourceFileName + ".psd"; | |
try (PsdImage im = (PsdImage) Image.load(fileName)) { | |
for (int k = 0; k < im.getLayers().length; k++) { | |
if (im.getLayers()[k] instanceof CurvesLayer) { | |
CurvesLayer curvesLayer = (CurvesLayer) im.getLayers()[k]; | |
if (curvesLayer.isDiscreteManagerUsed()) { | |
CurvesDiscreteManager manager = (CurvesDiscreteManager) curvesLayer.getCurvesManager(); | |
for (int i = 10; i < 50; i++) { | |
manager.setValueInPosition(0, (byte) i, (byte) (15 + (i * 2))); | |
} | |
} else { | |
CurvesContinuousManager manager = (CurvesContinuousManager) curvesLayer.getCurvesManager(); | |
manager.addCurvePoint((byte) 0, (byte) 50, (byte) 100); | |
manager.addCurvePoint((byte) 0, (byte) 150, (byte) 130); | |
} | |
} | |
} | |
// Save PSD | |
im.save(psdPathAfterChange + Integer.toString(j) + ".psd"); | |
} |
Manajer Lapisan Penyesuaian Kecerahan Foto dan Kontras
Artikel ini menunjukkan cara menelusuri setiap lapisan dan mengelola kecerahan dan kontras dalam lapisan dan kemudian menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(ManageBrightnessContrastAdjustmentLayer.class) + "PSD/"; | |
// Brightness/Contrast layer editing | |
String sourceFileName = dataDir + "BrightnessContrastModern.psd"; | |
String psdPathAfterChange = dataDir + "BrightnessContrastModernChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof BrightnessContrastLayer) { | |
BrightnessContrastLayer brightnessContrastLayer = (BrightnessContrastLayer) im.getLayers()[i]; | |
brightnessContrastLayer.setBrightness(50); | |
brightnessContrastLayer.setContrast(50); | |
} | |
} | |
// Save PSD | |
im.save(psdPathAfterChange); | |
} |
Manajer Lapisan Pemaparan
Artikel ini menunjukkan cara menambah dan menyunting lapisan pemaparan dan mengelola lapisan pemaparan dan kemudian menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(ManageExposureAdjustmentLayer.class) + "PSD/"; | |
// Exposure layer editing | |
String sourceFileName = dataDir + "ExposureAdjustmentLayer.psd"; | |
String psdPathAfterChange = dataDir + "ExposureAdjustmentLayerChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof ExposureLayer) { | |
ExposureLayer expLayer = (ExposureLayer) im.getLayers()[i]; | |
expLayer.setExposure(2); | |
expLayer.setOffset(-0.25f); | |
expLayer.setGammaCorrection(0.5f); | |
} | |
} | |
im.save(psdPathAfterChange); | |
} | |
// Exposure layer adding | |
sourceFileName = dataDir + "PhotoExample.psd"; | |
psdPathAfterChange = dataDir + "PhotoExampleAddedExposure.psd"; | |
try (PsdImage img = (PsdImage) Image.load(sourceFileName)) { | |
ExposureLayer newlayer = img.addExposureAdjustmentLayer(10, -0.25f, 2f); | |
img.save(psdPathAfterChange); | |
} |
Manajemen Lapisan Pengatur Kuningan Saluran
Artikel ini menunjukkan cara mengelola lapisan penyesuaian dan mengatur berbagai warna dan kemudian menyimpannya sebagai gambar PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(ManageChannelMixerAdjusmentLayer.class) + "PSD/"; | |
// Rgb Channel Mixer | |
String sourceFileName = dataDir + "ChannelMixerAdjustmentLayerRgb.psd"; | |
String psdPathAfterChange = dataDir + "ChannelMixerAdjustmentLayerRgbChanged.psd"; | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof RgbChannelMixerLayer) { | |
RgbChannelMixerLayer rgbLayer = (RgbChannelMixerLayer) im.getLayers()[i]; | |
rgbLayer.getRedChannel().setBlue((short) 100); | |
rgbLayer.getBlueChannel().setGreen((short) -100); | |
rgbLayer.getGreenChannel().setConstant((short) 50); | |
} | |
} | |
im.save(psdPathAfterChange); | |
} | |
// Adding the new layer(Cmyk for this example) | |
sourceFileName = dataDir + "CmykWithAlpha.psd"; | |
psdPathAfterChange = dataDir + "ChannelMixerAdjustmentLayerCmykChanged.psd"; | |
try (PsdImage img = (PsdImage) Image.load(sourceFileName)) { | |
ChannelMixerLayer newlayer = img.addChannelMixerAdjustmentLayer(); | |
newlayer.getChannelByIndex(2).setConstant((short) 50); | |
newlayer.getChannelByIndex(0).setConstant((short) 50); | |
img.save(psdPathAfterChange); | |
} |
Menggabungkan Lapisan PSD ke Lapisan Lainnya
Artikel ini menunjukkan cara menggabungkan lapisan ke lapisan lain dalam file PSD dengan Aspose.PSD. Pada contoh di bawah ini, file PSD yang ada dimuat dengan melewatkan jalur file ke metode Load statis kelas Image. Sekarang panggil metode Save dari instansi PsdImage. Potongan kode berikut menunjukkan cara menggabungkan lapisan PSD.
String dataDir = Utils.getDataDir(MergeOnePSDlayerToOther.class) + "PSD/"; | |
String sourceFile1 = dataDir + "FillOpacitySample.psd"; | |
String sourceFile2 = dataDir + "ThreeRegularLayersSemiTransparent.psd"; | |
String exportPath = dataDir + "MergedLayersFromTwoDifferentPsd.psd"; | |
try (PsdImage im1 = (PsdImage) Image.load(sourceFile1); | |
PsdImage im2 = (PsdImage) Image.load(sourceFile2)) { | |
Layer layer1 = im1.getLayers()[1]; | |
Layer layer2 = im2.getLayers()[0]; | |
layer1.mergeLayerTo(layer2); | |
im2.save(exportPath); | |
} |
Dukungan Untuk Kotak Batas Teks
Artikel ini menunjukkan cara Mendukung kotak batas teks dalam file PSD dengan Aspose.PSD. Pada contoh di bawah ini, file PSD yang ada dimuat dengan melewatkan jalur file ke metode Load statis kelas Image. TextBoundBox adalah ukuran lapisan maksimum untuk lapisan Teks. Sekarang panggil metode Save dari instansi PsdImage. Potongan kode berikut menunjukkan cara menggabungkan lapisan PSD.
String dataDir = Utils.getDataDir(TextLayerBoundBox.class) + "PSD/"; | |
String sourceFileName = dataDir + "LayerWithText.psd"; | |
Size correctOpticalSize = new Size(127, 45); | |
Size correctBoundBox = new Size(172, 62); | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName)) { | |
TextLayer textLayer = (TextLayer) im.getLayers()[1]; | |
// Size of the layer is the size of the rendered area | |
Size opticalSize = textLayer.getSize(); | |
Assert.areEqual(correctOpticalSize, opticalSize); | |
// TextBoundBox is the maximum layer size for Text Layer. | |
// In this area PS will try to fit your text | |
Size boundBox = textLayer.getTextBoundBox(); | |
Assert.areEqual(correctBoundBox, boundBox); | |
} |
Dukungan Untuk Sumber Daya IOPA
Artikel ini menunjukkan cara mendukung sumber daya IOPA dalam file PSD dengan Aspose.PSD. Potongan kode berikut menunjukkan cara mendukung IOPA dalam lapisan PSD.
String dataDir = Utils.getDataDir(AddIopaResource.class) + "PSD/"; | |
String sourceFileName = dataDir + "FillOpacitySample.psd"; | |
String exportPath = dataDir + "FillOpacitySampleChanged.psd"; | |
try (PsdImage im = (PsdImage) (Image.load(sourceFileName))) { | |
Layer layer = im.getLayers()[2]; | |
LayerResource[] resources = layer.getResources(); | |
for (int i = 0; i < resources.length; i++) { | |
if (resources[i] instanceof IopaResource) { | |
IopaResource iopaResource = (IopaResource) resources[i]; | |
iopaResource.setFillOpacity((byte) 200); | |
} | |
} | |
im.save(exportPath); | |
} |
Mengelola Opasitas Lapisan
Artikel ini menunjukkan cara mengelola opasitas lapisan dalam file PSD dengan Aspose.PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(FillOpacityOfLayers.class) + "PSD/"; | |
// Change the Fill Opacity property | |
String sourceFileName = dataDir + "FillOpacitySample.psd"; | |
String exportPath = dataDir + "FillOpacitySampleChanged.psd"; | |
try (PsdImage im = (PsdImage) (Image.load(sourceFileName))) { | |
Layer layer = im.getLayers()[2]; | |
layer.setFillOpacity(5); | |
im.save(exportPath); | |
} |
Rendering Lapisan Penyesuaian Kurva
Artikel ini menunjukkan cara merender penyesuaian kurva lapisan dalam file PSD dan merendernya ke PNG juga dengan Aspose.PSD. Potongan kode telah disediakan di bawah.
String dataDir = Utils.getDataDir(RenderingOfCurvesAdjustmentLayer.class) + "PSD/"; | |
// Curves layer editing | |
String sourceFileName = dataDir + "CurvesAdjustmentLayer"; | |
String psdPathAfterChange = dataDir + "CurvesAdjustmentLayerChanged"; | |
String pngExportPath = dataDir + "CurvesAdjustmentLayerChanged"; | |
for (int j = 1; j < 2; j++) { | |
try (PsdImage im = (PsdImage) Image.load(sourceFileName + Integer.toString(j) + ".psd")) { | |
for (int i = 0; i < im.getLayers().length; i++) { | |
if (im.getLayers()[i] instanceof CurvesLayer) { | |
CurvesLayer curvesLayer = (CurvesLayer) im.getLayers()[i]; | |
if (curvesLayer.isDiscreteManagerUsed()) { | |
CurvesDiscreteManager manager = (CurvesDiscreteManager) curvesLayer.getCurvesManager(); | |
for (int k = 10; k < 50; k++) { | |
manager.setValueInPosition(0, (byte) k, (byte) (15 + (k * 2))); | |
} | |
} else { | |
CurvesContinuousManager manager = (CurvesContinuousManager) curvesLayer.getCurvesManager(); | |
manager.addCurvePoint((byte) 0, (byte) 50, (byte) 100); | |
manager.addCurvePoint((byte) 0, (byte) 150, (byte) 130); | |
} | |
} | |
} | |
// Save PSD | |
im.save(psdPathAfterChange + Integer.toString(j) + ".psd"); | |
// Save PNG | |
PngOptions saveOptions = new PngOptions(); | |
saveOptions.setColorType(PngColorType.TruecolorWithAlpha); | |
im.save(pngExportPath + Integer.toString(j) + ".png", saveOptions); | |
} | |
} |
Menambahkan Lapisan Penyesuaian Kurva
Artikel ini