Използване на ефекти на слоеве в PSD файлове

Преглед

В Aspose.PSD за Python може да създавате различни ефекти върху слоеве, за да подобрите визуалния вид на изображенията си. Това може да се постигне с помощта на класа BlendingOptions, който предоставя методи за добавяне на различни видове ефекти като контур, вътрешна сянка, падаща сянка, градиентно покритие, цветно покритие, паттерново покритие и външно светене.

За да демонстрираме създаването на ефекти върху слоеве, нека разгледаме следния примерен код.

В този примерен код първо зареждаме PSD изображение и запазваме оригиналното изображение като PNG. След това създаваме различни ефекти на различни слоеве, използвайки класа BlendingOptions. Ето кратко обяснение на всеки ефект:

Контур: Добавяме градиентен контур към слой 1, задавайки размера на контура, цветовите точки на градиента и точките за прозрачност.

Вътрешна сянка: Добавяме вътрешна сянка към слой 2, като задаваме ъгъла и цвета на сянката.

Падаща сянка: Добавяме падаща сянка към слой 3, като задаваме ъгъла и цвета на сянката.

Градиентно покритие: Добавяме градиентно покритие към слой 4, указвайки цветовите точки на градиента и точките за прозрачност.

Цветно покритие: Добавяме цветно покритие към слой 5, като указваме цвета и прозрачността на покритието.

Паттерново покритие: Добавяме паттерново покритие към слой 6, като указваме данните за патерна, ширината и височината.

Външно светене: Добавяме външно светене към слой 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)