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.
-
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.
-
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.
-
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.
-
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.
-
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) |