1. Produkty
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for Python

Aspose.PSD FOSS dla Python

Biblioteka open-source Python do ładowania, przeglądania i zapisywania plików PSD/PSB z dostępem do metadanych warstw. Licencja MIT, nie wymaga Adobe Photoshop.

Biblioteka Python Open-Source dla plików PSD/PSB

Aspose.PSD FOSS for Python jest darmową, na licencji MIT, czystą biblioteką Python do ładowania, przeglądania, i zapisywania plików Adobe Photoshop PSD i PSB bez wymogu posiadania Adobe Photoshop ani żadnego własnościowego środowiska uruchomieniowego. Udostępnia lekką, samodzielną API skoncentrowaną na 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.

Ładuj i przeglądaj pliki PSD/PSB

  • Image.load(file_path) otwiera plik i zwraca instancję PsdImage
  • PsdImage.width, height i channels_count podają wymiary płótna oraz liczbę kanałów
  • Szczegóły nagłówka dokumentu są odczytywane z trybu kolorów i metadanych kompresji przetworzonego pliku
  • PsdImage.layers zwraca pełną listę obiektów Layer w kolejności dokumentu

Waliduj i kataloguj pliki projektu

  • Zweryfikuj partię plików projektowych przed przekazaniem ich do procesu downstream
  • Zbuduj lekki katalog zasobów wymiarów i liczby warstw w plikach PSD/PSB
  • Wykryj pliki PSB (dokumenty dużych rozmiarów), które wymagają innego traktowania niż standardowe PSD

Praca z warstwami

  • PsdImage.layers zwraca każdy Layer w kolejności dokumentu; każdy Layer udostępnia name, bounds, opacity, is_visible oraz blend_mode_key
  • Layer.channel_information udostępnia metadane kanału do głębszej inspekcji
  • Layer.channels_count informuje, ile kanałów obrazu posiada warstwa
  • PsdImage.layers można ponownie przypisać, aby usunąć lub zmienić kolejność warstw

Struktura warstwy audytu

  • Audytuj strukturę warstw PSD bez otwierania Photoshopa
  • Wygeneruj raport z nazw warstw, widoczności i trybów mieszania do przeglądu projektu
  • Zidentyfikuj ukryte lub o zerowej krycia warstwy pozostawione po wcześniejszych edycjach

Edytuj podstawowe metadane warstwy

  • Layer.name, Layer.left/top/right/bottom oraz Layer.blend_mode_key mogą być ustawiane bezpośrednio
  • PsdImage.save(file_path) zapisuje zmodyfikowany dokument z powrotem na dysk
  • Przeładowanie zapisanego pliku przy użyciu PsdImage.load potwierdza, że edycje przechodzą poprawnie round-trip
  • Właściwości nie wymienione powyżej (informacje o kanale, dane maski, zakresy mieszania) podnoszą NotSupportedException, jeśli zostaną ustawione — ta wersja obsługuje jedynie edycje metadanych, nie pełne przetworzenie

Lekkie, Skryptowalne Edycje

  • Zmieniaj nazwy warstw programowo w ramach zautomatyzowanego pipeline’u organizacji plików
  • Przemieszczaj lub zmieniaj rozmiar pola ograniczającego warstwę bez użycia narzędzia do projektowania
  • Masowo aktualizuj tryby mieszania w wielu plikach w celu zachowania spójności

Sprawdź dane kanału i zasobów

  • Layer.channel_information udostępnia kolekcje metadanych dla każdego kanału
  • Layer.has_mask_data i has_blending_ranges_data zgłaszają, czy opcjonalne sekcje są obecne
  • PsdLoadException i PsdSaveException prezentują błędy ładowania/zapisu z czytelnymi komunikatami
  • Wszystkie klasy są czystym Python bez skompilowanych modułów rozszerzeń

Diagnostyka i inspekcja

  • Zdiagnozuj, dlaczego konkretny plik PSD nie ładuje się, używając typowanego wyjątku zamiast ogólnego błędu
  • Sprawdź, czy warstwa zawiera maskę lub dane zakresu mieszania przed jej przetwarzaniem
  • Zbadaj metadane per-kanałowe w celu diagnostyki na poziomie formatu

Załaduj plik PSD i sprawdź jego warstwy

Zał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)}")

Edytuj granice warstwy i tryb mieszania, a następnie zapisz

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}")

Odczytaj informacje o kanale (tylko do odczytu)

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

Najczęściej Zadawane Pytania

Jaki jest model licencjonowania?

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.

Jak zainstalować Aspose.PSD FOSS for Python?

Zobacz sekcję instalacji powyżej, aby uzyskać aktualne polecenie instalacji.

Jakie formaty może Aspose.PSD FOSS for Python odczytywać i zapisywać?

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

Jaka jest główna klasa punktu wejścia?

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.

Czy mogę modyfikować metadane warstwy?

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.

  

Zasoby Wsparcia i Nauki

 Polski