تلاش‌کردن با فرمت‌های فتوشاپ

تعویض رنگ در لایه‌های PSD

Aspose.PSD برای Java به شما امکان می‌دهد تا رنگ پس‌زمینه هر لایه از یک فایل PSD را تغییر دهید. لطفا از کلاس Aspose.PSD.FileFormats.Psd.Layers.BackgroundColor برای تغییر رنگ پس‌زمینه لایه در لایه PSD استفاده کنید. قطعه کد زیر یک فایل PSD را بارگذاری می‌کند، به لایه دسترسی پیدا می‌کند، رنگ پس‌زمینه را بروزرسانی و فایل 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");
}

به‌روزرسانی لایه متنی در فایل PSD

Aspose.PSD برای Java به شما امکان می‌دهد تا متن را در لایه متنی یک فایل PSD مدیریت کنید. لطفا از کلاس Aspose.PSD.FileFormats.Psd.Layers.TextLayer برای به‌روزرسانی متن در لایه PSD استفاده کنید. قطعه کد زیر یک فایل PSD را بارگذاری می‌کند، به لایه متنی دسترسی پیدا می‌کند، متن را به‌روزرسانی و فایل PSD را با نام جدید با استفاده از متد 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");
}

شناسایی PSD فشرده شده

Aspose.PSD برای Java به شما امکان می‌دهد تا بررسی کنید که آیا یک فایل PSD داده شده فشرده شده است یا خیر. متغیر IsFlatten در کلاس Aspose.PSD.FileFormats.Psd.PsdImage برای دستیابی به این قابلیت معرفی شده است. قطعه کد زیر یک فایل PSD را بارگذاری کرده و به ویژگی 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());
}

ادغام لایه‌های PSD

این مقاله نشان می‌دهد چگونه لایه‌ها را در یک فایل PSD ادغام کنید در حالی که یک فایل PSD را به JPG با Aspose.PSD تبدیل می‌کنید. در مثال زیر، یک فایل PSD موجود با استفاده از ارسال مسیر فایل به متد بارگذاری استاتیک کلاس Image بارگیری می‌شود. وقتی بارگذاری شود، تصویر را به نوع PsdImage تبدیل کنید. یک نمونه از کلاس JpegOptions ایجاد کرده و ویژگی‌های مختلف آن را تنظیم کنید. حالا متد Save نمونه PsdImage را فراخوانی کنید. قطعه کد زیر نشان می‌دهد که چگونه لایه‌های 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);
}

پشتیبانی از GrayScale با Alpha برای PSD

این مقاله نشان می‌دهد چطور Grayscale با Alpha را برای فایل PSD پشتیبانی کنید در حالی که یک فایل PSD را به PNG با استفاده از Aspose.PSD تبدیل می‌کنید. در مثال زیر، یک فایل PSD موجود با استفاده از ارسال مسیر فایل به متد بارگذاری استاتیک کلاس Image بارگیری می‌شود. وقتی بارگذاری شود، تصویر را به نوع PsdImage تبدیل کنید. یک نمونه از کلاس PngOptions ایجاد کرده و ویژگی‌های مختلف آن را تنظیم کنید. ویژگی ColorType را به TruecolorWithAlpha تنظیم کنید. حالا متد Save نمونه PngOptions را فراخوانی کنید. قطعه کد زیر نشان می‌دهد که چگونه به PNG Grayscale با 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);
}

پشتیبانی از اثرات لایه برای PSD

این مقاله نشان می‌دهد چطور از اثرات مختلفی مانند Blur, InnerGlow, OuterGlow برای لایه‌های PSD پشتیبانی کنید. قطعه کد زیر نشان می‌دهد چگونه از اثرات لایه پشتیبانی کنید.

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);
}

پشتیبانی از تاریخ و زمان ایجاد لایه

این مقاله نشان می‌دهد چطور از تاریخ و زمان ایجاد لایه برای لایه PSD پشتیبانی کنید. قطعه کد زیر نشان می‌دهد چگونه لایه‌ها را ایجاد کنید.

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();
}

پشتیبانی از رنگ برجسته برگه

این مقاله نشان می‌دهد چگونه تصاویر psd را بارگیری کنید و سپس رنگ برگه ها را تغییر دهید و برجسته کنید و آن را به عنوان تصویر ذخیره کنید. قطعه کد ارائه شده است.

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);
}

پشتیبانی از لایه‌های متن در زمان اجرا

این مقاله نشان می‌دهد چگونه لایه‌های متنی را در زمان اجرا برای تصاویر PSD اضافه کنید. قطعه کد زیر ارائه شده است.

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);
}

پشتیبانی از لایه‌های تنظیم

این مقاله نشان می‌دهد چطور لایه‌ها را تنظیم کنید و اگر لایه تهی باشد، لایه‌ها راادغام کنید و به عنوان تصاویر PSD ذخیره کنید. قطعه کد ارائه شده است.

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);
}

مدیریت روشنایی و کنتراست در لایه‌های تنظیم

این مقاله نشان می‌دهد چگونه از لایه‌ها عبور کرده و روشنایی و کنتراست را مدیریت کنید و سپس آن‌ها را به عنوان تصاویر PSD ذخیره کنید. قطعه کد ارائه شده است.

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);
}

مدیریت لایه‌های نورافشان

این مقاله نشان می‌دهد چطور لایه‌های نورافشان را اضافه و ویرایش کنید و لایه‌های نورافشان را مدیریت کنید و سپس آن‌ها را به عنوان تصاویر PSD ذخیره کنید. قطعه کد ارائه شده است.

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);
}

مدیریت لایه‌های تنظیم کانال مخلوط

این مقاله نشان می‌دهد چطور لایه‌های تنظیم را مدیریت کنید و تنظیمات مختلف رنگی را تنظیم کنید و سپس آن‌ها را به عنوان تصاویر PSD ذخیره کنید. قطعه کد ارائه شده است.

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);
}

ادغام لایه‌های PSD به دیگر لایه‌ها

این مقاله نشان می‌دهد چگونه لایه‌ها را با لایه‌های دیگر در یک فایل PSD ادغام کنید با Aspose.PSD. در مثال زیر، یک فایل PSD موجود با استفاده از ارسال مسیر فایل به متد بارگذاری استاتیک کلاس Image بارگیری می‌شود. حالا متد Save نمونه PsdImage را فراخوانی کنید. قطعه کد زیر نشان می‌دهد که چگونه لایه‌های 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);
}

پشتیبانی از جعبه محدوده متن

این مقاله نشان می‌دهد چگونه جعبه محدوده متن در فایل PSD را با Aspose.PSD پشتیبانی کنید. در مثال زیر، یک فایل PSD موجود با استفاده از ارسال مسیر فایل به متد بارگذاری استاتیک کلاس Image بارگیری می‌شود. TextBoundBox بزرگترین اندازه لایه برای لایه متنی است. حالا متد Save نمونه PsdImage را فراخوانی کنید. قطعه کد زیر نشان می‌دهد که چگونه لایه‌های 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);
}

پشتیبانی از منابع IOPA

این مقاله نشان می‌دهد چگونه از منبع IOPA در یک فایل PSD با Aspose.PSD پشتیبانی کنید. قطعه کد زیر نشان می‌دهد که چگونه از IOPA در لایه‌های 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);
}

مدیریت تراکم لایه‌ها

این مقاله نشان می‌دهد چگونه تراکم لایه‌ها ر