Използване на ефекти на слоеве в 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) |