استفاده از افکت های لایه در فایل های PSD

بررسی کلی

در Aspose.PSD برای Python، شما می‌توانید انواع افکت ها را بر روی لایه ها ایجاد کنید تا ظاهر تصاویر خود را بهبود دهید. این کار از طریق کلاس BlendingOptions انجام می‌شود که متدهایی برای اضافه کردن انواع مختلف افکت ها از قبیل stroke، inner shadow، drop shadow، gradient overlay، color overlay، pattern overlay و outer glow ارائه می‌دهد.

برای نشان دادن ایجاد افکت ها بر روی لایه ها، بیایید به نمونه کد زیر مراجعه کنیم.

در این نمونه کد، ابتدا یک تصویر PSD را بارگذاری کرده و تصویر اصلی را به صورت PNG ذخیره می‌کنیم. سپس، با استفاده از کلاس BlendingOptions افکت‌های مختلف را بر روی لایه های مختلف ایجاد می‌کنیم. در زیر توضیح مختصری از هر افکت آورده شده است:

  • Stroke: یک stroke گرادیان به لایه 1 اضافه می‌کنیم، با تعیین اندازه stroke، نقاط رنگ گرادیان و نقاط شفافیت.

  • Inner Shadow: یک سایه داخلی به لایه 2 اضافه می‌کنیم، با تعیین زاویه و رنگ سایه.

  • Drop Shadow: یک سایه ریختن به لایه 3 اضافه می‌کنیم، با تعیین زاویه و رنگ سایه.

  • Gradient Overlay: یک گرادیان پوشش به لایه 4 اضافه می‌کنیم، با تعیین نقاط رنگ گرادیان و نقاط شفافیت.

  • Color Overlay: یک رنگ پوشش به لایه 5 اضافه می‌کنیم، با تعیین رنگ و شفافیت پوشش.

  • Pattern Overlay: یک الگوی پوشش به لایه 6 اضافه می‌کنیم، با تعیین داده الگو، عرض و ارتفاع.

  • Outer Glow: یک نور خارجی به لایه 7 اضافه می‌کنیم، با تعیین اندازه و رنگ پر کردن نور.

در نهایت، تصویر تغییر یافته را به صورت هر دوی PNG و PSD ذخیره می‌کنیم.

این فقط یک مثال ابتدایی از چگونگی ایجاد افکت ها بر روی لایه ها با استفاده از Aspose.PSD برای Python است. شما می‌توانید افکت ها را با تنظیم پارامترها و خواص هر افکت، بیشتر سفارشی کنید. این کتابخانه انواع گزینه ها و تنظیمات را برای ایجاد افکت های پیچیده و جذاب تصویری فراهم می‌کند.

امیدوارم این مقاله به شما کمک کند تا چگونگی ایجاد افکت ها بر روی لایه ها در Aspose.PSD برای Python را متوجه شوید. موفق باشید در کاوش در مستندات کتابخانه برای جزئیات و نمونه های بیشتر.

لطفا نمونه کامل را بررسی کنید.

مثال

from aspose.psd import Image, Color
from aspose.psd.fileformats.png import PngColorType
from aspose.psd.fileformats.psd import PsdImage
from aspose.psd.fileformats.psd.layers.fillsettings import GradientColorPoint, GradientTransparencyPoint, FillType, \
GradientFillSettings, PatternFillSettings, ColorFillSettings
from aspose.psd.imageloadoptions import PsdLoadOptions
from aspose.psd.imageoptions import PngOptions
from aspose.pycore import cast
def LayerEffectsFullTest(self):
source = self.GetFileInBaseFolderByIssue("ShowCases", "nines.psd")
result_orig = self.GetFileInOutputFolder("nines_orig.png")
result_psd = self.GetFileInOutputFolder("nines_mod.psd")
result_mod = self.GetFileInOutputFolder("nines_mod.png")
# Set the PNG options
png_opt = PngOptions()
png_opt.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
# Set the PSD load options
psd_opt = PsdLoadOptions()
psd_opt.load_effects_resource = True
# Load the PSD image
with Image.load(source, psd_opt) as img:
# Cast to PsdImage
image = cast(PsdImage, img)
# Save the original image as PNG
image.save(result_orig, png_opt)
# Test data for gradient
gradient_color_points = [
GradientColorPoint(Color.red, 0, 50),
GradientColorPoint(Color.green, 1024, 50),
GradientColorPoint(Color.blue, 2048, 50)
]
tp1 = GradientTransparencyPoint()
tp1.location = 0
tp1.median_point_location = 50
tp1.opacity = 128
tp2 = GradientTransparencyPoint()
tp2.location = 2048
tp2.median_point_location = 50
tp2.opacity = 176
gradient_transparency_points = [tp1, tp2]
# Add stroke to layer 1
stroke = image.layers[1].blending_options.add_stroke(FillType.GRADIENT)
stroke.size = 3
gradient_fill = cast(GradientFillSettings, stroke.fill_settings)
gradient_fill.color_points = gradient_color_points
gradient_fill.transparency_points = gradient_transparency_points
# Add inner shadow to layer 2
inner_shadow = image.layers[2].blending_options.add_inner_shadow()
inner_shadow.angle = 60
inner_shadow.color = Color.yellow
# Add drop shadow to layer 3
drop_shadow = image.layers[3].blending_options.add_drop_shadow()
drop_shadow.angle = 30
drop_shadow.color = Color.violet
# Add gradient overlay to layer 4
gradient_overlay = image.layers[4].blending_options.add_gradient_overlay()
gradient_overlay.settings.color_points = gradient_color_points
gradient_overlay.settings.transparency_points = gradient_transparency_points
# Add color overlay to layer 5
color_overlay = image.layers[5].blending_options.add_color_overlay()
color_overlay.color = Color.azure
color_overlay.opacity = 120
# Add pattern overlay to layer 6
pattern_overlay = image.layers[6].blending_options.add_pattern_overlay()
patSettings = cast(PatternFillSettings, pattern_overlay.settings)
patSettings.pattern_data = [
Color.red.to_argb(), Color.transparent.to_argb(),
Color.transparent.to_argb(), Color.red.to_argb()
]
patSettings.pattern_width = 2
patSettings.pattern_height = 2
# Add outer glow to layer 7
outer_glow = image.layers[7].blending_options.add_outer_glow()
outer_glow.size = 10
outer_glow.fill_color = ColorFillSettings()
outer_glow.fill_color.color = Color.crimson
# Save the modified image as PNG and PSD
image.save(result_mod, png_opt)
image.save(result_psd)