تلاشکردن با فرمتهای فتوشاپ
تعویض رنگ در لایههای 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); | |
} |
مدیریت تراکم لایهها
این مقاله نشان میدهد چگونه تراکم لایهها ر