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