Aktualizacja i eksport Inteligentnych Obiektów za pomocą Aspose.PSD dla Pythona

Przegląd

Aktualizacja i Eksportowanie Warstw Inteligentnych Obiektów w plikach PSD za pomocą Aspose.PSD dla Pythona

Warstwy Inteligentnych Obiektów w plikach PSD pozwalają na zamieszczanie i manipulowanie zewnętrznymi obrazami w projektach Photoshopa. Dzięki Aspose.PSD dla Pythona, można łatwo aktualizować i eksportować Warstwy Inteligentnych Obiektów, co zapewnia potężne możliwości edycji i manipulacji obrazem.

W tym artykule przejdziemy przez przewodnik krok po kroku, jak zaktualizować i wyeksportować Warstwy Inteligentnych Obiektów za pomocą Aspose.PSD dla Pythona.

Warstwy Kształtów są ważną funkcją w Aspose.PSD dla Pythona, która pozwala tworzyć i manipulować warstwami w sposób niedestrukcyjny w obrazie PSD.

Przykładowy Scenariusz Załóżmy, że mamy plik PSD o nazwie “new_panama-papers-8-trans4.psd”, który zawiera Warstwę Inteligentnego Obiektu. Chcemy zaktualizować zawartość Warstwy Inteligentnego Obiektu poprzez odwrócenie obrazu, a następnie wyeksportować zmodyfikowany plik PSD.

  1. Załaduj plik PSD Najpierw musimy załadować plik PSD, korzystając z metody Image.load z biblioteki Aspose.PSD. Dzięki temu uzyskamy dostęp do warstw wewnątrz pliku PSD.

  2. Eksportuj Zawartość Warstwy Inteligentnego Obiektu Aby wyeksportować zawartość Warstwy Inteligentnego Obiektu, możemy użyć metody export_contents klasy SmartObjectLayer. Metoda ta pozwala zapisać osadzony obraz jako oddzielny plik.

  3. Zmodyfikuj Warstwę Inteligentnego Obiektu Następnie możemy zmodyfikować zawartość Warstwy Inteligentnego Obiektu. Na przykład, możemy odwrócić obraz, korzystając z funkcji invert_image.

  4. Zaktualizuj Zmodyfikowaną Zawartość Po manipulacji Warstwą Inteligentnego Obiektu, musimy zaktualizować zmodyfikowaną zawartość, korzystając z metody update_all_modified_content klasy smart_object_provider. Zapewnia to zastosowanie zmian do odpowiednich warstw.

  5. Zapisz zmodyfikowany plik PSD Na koniec możemy zapisać zmodyfikowany plik PSD z zaktualizowaną Warstwą Inteligentnego Obiektu, korzystając z metody save i określając PsdOptions dla pożądanego formatu i opcji.

Podsumowanie W tym artykule nauczyliśmy się, jak aktualizować i eksportować Warstwy Inteligentnych Obiektów w plikach PSD za pomocą Aspose.PSD dla Pythona. Postępując zgodnie z podanymi krokami, łatwo możesz manipulować i eksportować zawartość Warstw Inteligentnych Obiektów, otwierając szeroki zakres możliwości edycji i dostosowania obrazu.

Aspose.PSD dla Pythona zapewnia kompleksowy zestaw cech i interfejsów API do pracy z plikami PSD, co czyni go potężnym narzędziem dla każdego programisty Pythona pracującego z projektami Photoshopa.

Aby dowiedzieć się więcej o Aspose.PSD dla Pythona i odkryć jego możliwości, zapoznaj się z oficjalną dokumentacją i odnośnikiem API.

Proszę sprawdź pełen przykład.

Przykład

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)