استخدام تأثيرات الطبقة في ملفات PSD

نظرة عامة

في Aspose.PSD لـ Java، يمكنك تطبيق تأثيرات مختلفة على الطبقات لتعزيز المظهر البصري لصورك. تتم هذه التأثيرات من خلال الفئة BlendingOptions، التي تقدم وسائل لدمج تأثيرات مختلفة مثل التحديد، الظل الداخلي، الظل المتساقط، التراكيب المتدرجة، تظليل اللون، تراكيب النمط، واللمعان الخارجي.

لتوضيح عملية تطبيق التأثيرات على الطبقات، دعنا نستعرض الخطوات المتضمنة:

  • التحديد: هذا التأثير ينطوي على إضافة تحديد تدرجي إلى طبقة، محددة البارامترات مثل حجم التحديد، نقاط لون التدرج، ونقاط الشفافية.

  • التظليل الداخلي: يشمل إضافة ظل داخلي إلى طبقة، عبر تحديد سمات مثل زاوية الظل واللون.

  • الظل المتساقط: ينطوي هذا التأثير على إضافة ظل متساقط إلى طبقة، محددًا بارامترات مثل زاوية الظل واللون.

  • التراكيب المتدرجة: تضيف تركيبة متدرجة إلى طبقة، عبر تحديد نقاط لون التدرج ونقاط الشفافية.

  • تظليل اللون: يتضمن دمج تظليل لوني على طبقة، عبر تحديد لون التظليل وشفافيته.

  • تركيبة النمط: ينطوي على إضافة تركيبة نمطية إلى طبقة، محددًا سمات مثل بيانات النمط، العرض، والارتفاع.

  • اللمعان الخارجي: تضيف لمعة خارجية إلى طبقة، محددة بارامترات مثل حجم اللمعة ولون التعبئة.

  • بعد تطبيق التأثيرات المطلوبة على الطبقات، يمكنك حفظ الصورة المعدّلة بصيغ متنوعة.

  • توضح هذه الوصفية العملية الأساسية لتطبيق تأثيرات على الطبقات باستخدام Aspose.PSD لـ Java. يمكنك تخصيص هذه التأثيرات بشكل أعمق عن طريق ضبط معلماتها وخصائصها الخاصة. تقدم المكتبة مجموعة من الخيارات والإعدادات لإنشاء تأثيرات معقدة وجذابة بصريًا.

  • استكشف توثيق المكتبة للحصول على تفاصيل شاملة وأمثلة حول تطبيق التأثيرات على الطبقات في Aspose.PSD لـ Java.

يرجى التحقق من المثال الكامل.

مثال

public void layerEffectsFullTest() {
String source = "/ShowCases/nines.psd";
String resultOrig = "nines_orig.png";
String resultPsd = "nines_mod.psd";
String resultMod = "nines_mod.png";
// Set the PNG options
PngOptions pngOpt = new PngOptions();
pngOpt.setColorType(PngColorType.TruecolorWithAlpha);
// Set the PSD load options
PsdLoadOptions psdLoadOptions = new PsdLoadOptions();
psdLoadOptions.setLoadEffectsResource(true);
// Load the PSD image
try (PsdImage image = (PsdImage) Image.load(source, psdLoadOptions)) {
// Save the original image as PNG
image.save(resultOrig, pngOpt);
// Test data for gradient
GradientColorPoint[] gradientColorPoints = new GradientColorPoint[]{
new GradientColorPoint(Color.getRed(), 0, 50),
new GradientColorPoint(Color.getGreen(), 1024, 50),
new GradientColorPoint(Color.getBlue(), 2048, 50)
};
GradientTransparencyPoint tp1 = new GradientTransparencyPoint();
tp1.setLocation(0);
tp1.setMedianPointLocation(50);
tp1.setOpacity(128);
GradientTransparencyPoint tp2 = new GradientTransparencyPoint();
tp2.setLocation(2048);
tp2.setMedianPointLocation(50);
tp2.setOpacity(176);
GradientTransparencyPoint[] gradientTransparencyPoints = new GradientTransparencyPoint[]{tp1, tp2};
// Add stroke to layer 1
StrokeEffect stroke = image.getLayers()[1].getBlendingOptions().addStroke(FillType.Gradient);
stroke.setSize(3);
GradientFillSettings gradientFillSettings = (GradientFillSettings) stroke.getFillSettings();
gradientFillSettings.setColorPoints(gradientColorPoints);
gradientFillSettings.setTransparencyPoints(gradientTransparencyPoints);
// Add inner shadow to layer 2
InnerShadowEffect innerShadow = image.getLayers()[2].getBlendingOptions().addInnerShadow();
innerShadow.setAngle(60);
innerShadow.setColor(Color.getYellow());
// Add drop shadow to layer 3
DropShadowEffect dropShadow = image.getLayers()[3].getBlendingOptions().addDropShadow();
dropShadow.setAngle(30);
dropShadow.setColor(Color.getViolet());
// Add gradient overlay to layer 4
GradientOverlayEffect gradientOverlay = image.getLayers()[4].getBlendingOptions().addGradientOverlay();
gradientOverlay.getSettings().setColorPoints(gradientColorPoints);
gradientOverlay.getSettings().setTransparencyPoints(gradientTransparencyPoints);
// Add color overlay to layer 5
ColorOverlayEffect colorOverlay = image.getLayers()[5].getBlendingOptions().addColorOverlay();
colorOverlay.setColor(Color.getAzure());
colorOverlay.setOpacity((byte) 120);
// Add pattern overlay to layer 6
PatternOverlayEffect patternOverlay = image.getLayers()[6].getBlendingOptions().addPatternOverlay();
int[] patternData = new int[]{
Color.getRed().toArgb(), Color.getTransparent().toArgb(),
Color.getTransparent().toArgb(), Color.getRed().toArgb()
};
patternOverlay.getSettings().setPatternData(patternData);
patternOverlay.getSettings().setPatternWidth(2);
patternOverlay.getSettings().setPatternHeight(2);
// Add outer glow to layer 7
OuterGlowEffect outerGlow = image.getLayers()[7].getBlendingOptions().addOuterGlow();
outerGlow.setSize(10);
ColorFillSettings colorFillSettings = new ColorFillSettings();
colorFillSettings.setColor(Color.getCrimson());
outerGlow.setFillColor(colorFillSettings);
// Save the modified image as PNG and PSD
image.save(resultMod, pngOpt);
image.save(resultPsd);
}
}