Aktualizace chytrých objektů a jejich export pomocí Aspose.PSD pro Python

Přehled

Aktualizace a export chytrých vrstev objektů v souborech PSD pomocí Aspose.PSD pro Python

Chytré vrstvy objektů v souborech PSD vám umožňují vložit a manipulovat s externími obrazy ve vašich návrzích v programu Photoshop. S Aspose.PSD pro Python můžete snadno aktualizovat a exportovat chytré vrstvy objektů, což vám poskytuje mocné schopnosti pro úpravu a manipulaci s obrázky.

V tomto článku se seznámíme s postupným průvodcem, jak aktualizovat a exportovat chytré vrstvy objektů pomocí Aspose.PSD pro Python.

Vrstvy tvarů jsou důležitou funkcí v Aspose.PSD pro Python, která vám umožní vytvářet a manipulovat s vrstvami v nezničujícím způsobem v obraze PSD.

Příklad scénáře Předpokládejme, že máme soubor PSD s názvem “new_panama-papers-8-trans4.psd”, který obsahuje chytrou vrstvu objektu. Chceme aktualizovat obsah této chytré vrstvy objektu inverzí obrázku a poté exportovat upravený soubor PSD.

  1. Načtěte soubor PSD Nejprve musíme načíst soubor PSD pomocí metody Image.load knihovny Aspose.PSD. Tím získáme přístup k vrstvám v souboru PSD.

  2. Exportujte obsah chytré vrstvy objektu K exportu obsahu chytré vrstvy objektu můžeme použít metodu export_contents třídy SmartObjectLayer. Tato metoda nám umožňuje uložit vložený obrázek jako samostatný soubor.

  3. Manipulace s chytrou vrstvou objektu Následně upravíme obsah chytré vrstvy objektu. Například obrázek inverzí lze provést pomocí funkce invert_image.

  4. Aktualizace upraveného obsahu Po manipulaci s chytrou vrstvou objektu je třeba aktualizovat upravený obsah pomocí metody update_all_modified_content třídy smart_object_provider. Tím se zajistí, že změny se aplikují na příslušné vrstvy.

  5. Uložte upravený soubor PSD Nakonec můžeme uložit upravený soubor PSD s aktualizovanou chytrou vrstvou objektu pomocí metody save a specifikací PsdOptions pro požadovaný formát a možnosti.

** Závěr** V tomto článku jsme se naučili, jak aktualizovat a exportovat chytré vrstvy objektů v souborech PSD pomocí Aspose.PSD pro Python. Následováním poskytnutých kroků můžete snadno manipulovat a exportovat obsah chytrých vrstev objektů, což otevírá širokou škálu možností pro úpravu obrázků a jejich přizpůsobení.

Aspose.PSD pro Python poskytuje komplexní sadu funkcí a API pro práci se soubory PSD, čímž se stává mocným nástrojem pro každého vývojáře v Pythonu pracujícího s návrhy programu Photoshop.

Chcete-li se dozvědět více o Aspose.PSD pro Python a prozkoumat jeho schopnosti, obraťte se na oficiální dokumentaci a referenci API.

Prosím, zkontrolujte plný příklad.

Příklad

from aspose.psd import Image, RasterImage
from aspose.psd.fileformats.psd import PsdImage
from aspose.psd.fileformats.psd.layers.smartobjects import SmartObjectLayer
from aspose.psd.imageoptions import PsdOptions
from aspose.pycore import cast
# Just inverts all data of image
def invert_image(image):
pixels = image.load_argb_32_pixels(image.bounds)
for i in range(len(pixels)):
pixel = pixels[i]
alpha = pixel & 0xff000000
pixels[i] = (~ (pixel & 0x00ffffff)) | alpha
image.save_argb_32_pixels(image.bounds, pixels)
# Demonstation of API to work woth Smart Object Layers
def SmartObjectManipulationTest():
source = "new_panama-papers-8-trans4.psd"
export_content_path = "export_content.jpg"
output_original = "smart_object_orig.psd"
output_updated = "smart_object.psd"
with Image.load(source) as image:
im = cast(PsdImage, image)
im.save(output_original)
smartLayer = cast(SmartObjectLayer, im.layers[0])
# How to export content of Smart Object
smartLayer.export_contents(export_content_path)
# Creating Smart Object as a Copy
newLayer = smartLayer.new_smart_object_via_copy()
newLayer.is_visible = False
newLayer.display_name = "Duplicate"
# Get the content of Smart Object for manipulation
with smartLayer.load_contents(None) as innerImage:
layer = cast(RasterImage, innerImage)
invert_image(layer)
smartLayer.replace_contents(layer)
im.smart_object_provider.update_all_modified_content()
psd_options = PsdOptions(im)
im.save(output_updated, psd_options)