PsdImage i
Layer, dającą programistom Python programowy dostęp do struktury dokumentu PSD bez
zależności natywnych przy kompilacji. Biblioteka odczytuje wymiary pliku PSD/PSB, tryb kolorów, głębię bitową i metodę
kompresji, a także udostępnia każdą warstwę poprzez PsdImage.layers: każda Layer podaje swoją nazwę,
granice, krycie, widoczność oraz klucz trybu mieszania (BlendMode), wraz z informacjami niższego
poziomu o kanale (ChannelInformation) oraz danymi maski (LayerMaskData). Podzbiór
metadanych warstwy — nazwa, granice (left/top/right/bottom) i tryb mieszania — może być
modyfikowany w miejscu i zachowany z powrotem na dysku przy użyciu PsdImage.save(); wszystko
inne jest domyślnie tylko do odczytu w tej wersji FOSS. Aspose.PSD FOSS for Python jest licencjonowane na warunkach MIT. Zainstaluj ją za pomocą
pip install aspose-psd-foss — biblioteka nie ma żadnych zależności natywnych osób trzecich,
tylko standardową bibliotekę Python. Aby zobaczyć rodzinę produktów korporacyjnych, zobacz Aspose.PSD — Enterprise Product Family.Image.load(file_path) otwiera plik i zwraca instancję PsdImagePsdImage.width, height i channels_count podają wymiary płótna oraz liczbę kanałówPsdImage.layers zwraca pełną listę obiektów Layer w kolejności dokumentuPsdImage.layers zwraca każdy Layer w kolejności dokumentu; każdy Layer udostępnia name, bounds, opacity, is_visible oraz blend_mode_keyLayer.channel_information udostępnia metadane kanału do głębszej inspekcjiLayer.channels_count informuje, ile kanałów obrazu posiada warstwaPsdImage.layers można ponownie przypisać, aby usunąć lub zmienić kolejność warstwLayer.name, Layer.left/top/right/bottom oraz Layer.blend_mode_key mogą być ustawiane bezpośrednioPsdImage.save(file_path) zapisuje zmodyfikowany dokument z powrotem na dyskPsdImage.load potwierdza, że edycje przechodzą poprawnie round-tripNotSupportedException, jeśli zostaną ustawione — ta wersja obsługuje jedynie edycje metadanych, nie pełne przetworzenieLayer.channel_information udostępnia kolekcje metadanych dla każdego kanałuLayer.has_mask_data i has_blending_ranges_data zgłaszają, czy opcjonalne sekcje są obecnePsdLoadException i PsdSaveException prezentują błędy ładowania/zapisu z czytelnymi komunikatamiZaładuj plik za pomocą Image.load, aby uzyskać instancję PsdImage umożliwiającą dostęp do członków specyficznych dla PSD.
from aspose_psd_foss.image import Image
with Image.load("test.psd") as image:
print(f"Width: {image.width}, Channels: {image.channels_count}, Layers: {len(image.layers)}")
Granice warstwy i tryb mieszania można zmienić w miejscu i zapisać ponownie na dysku.
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("test.psd") as image:
image.layers[0].left = 10
image.layers[0].top = 20
image.layers[0].right = 40
image.layers[0].bottom = 60
image.layers[0].blend_mode_key = BlendMode.MULTIPLY
image.save("edited.psd")
with PsdImage.load("edited.psd") as reloaded:
print(f"Bounds: {reloaded.layers[0].bounds}, BlendMode: {reloaded.layers[0].blend_mode_key}")
Informacje o kanale można odczytać, ale nie można ich ponownie przypisać — próba ustawienia ich powoduje podniesienie NotSupportedException.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("test.psd") as image:
layer = image.layers[0]
channel_information = layer.channel_information
print(f"Channel count: {layer.channels_count}, first channel: `NotSupportedException`")
# layer.channel_information = channel_information # raises NotSupportedException
Aspose.PSD FOSS for Python jest licencjonowany na licencji MIT. Możesz używać, modyfikować i rozpowszechniać go na warunkach licencji MIT, w tym w produktach komercyjnych.
Zobacz sekcję instalacji powyżej, aby uzyskać aktualne polecenie instalacji.
Ładuje i zapisuje pliki PSD oraz PSB (duże dokumenty Photoshopa). Nie renderuje ani nie eksportuje danych pikseli do innych formatów rastrowych, takich jak PNG lub JPEG.
PsdImage (podklasa Image). Załaduj dokument przy użyciu PsdImage.load, a następnie odczytaj jego kolekcję layers oraz właściwości nagłówka.
Tak — Layer udostępnia działający setter dla kilku właściwości, takich jak widoczność i nazwa, a PsdImage.layers sam posiada działający setter umożliwiający zastąpienie kolekcji. Kilka konkretnych właściwości (informacje o kanale, dane maski, zakresy mieszania oraz niektóre zasoby na poziomie dokumentu) jest tylko do odczytu w tej wersji FOSS i wyrzuca NotSupportedException, jeśli zostaną ustawione.