Wprowadzenie
Aspose.PSD FOSS dla Python to nowa biblioteka open-source do pracy z plikami PSD i PSB (Photoshop large document) z kodu Python. Jest udostępniona na licencji MIT, nie ma żadnych zależności natywnych firm trzecich i wymaga jedynie standardowej biblioteki Python w czasie działania. Pakiet jest importowany jako aspose_psd_foss.
Biblioteka jest zorganizowana wokół klasy PsdImage, która rozszerza abstrakcyjną klasę bazową Image, oraz klasy Layer. Image.load() / PsdImage.load() ładują dokument z ścieżki pliku lub strumienia, udostępniając informacje nagłówka (width, height, color_mode, version, compression) i sparsowaną kolekcję layers; PsdImage.save() zapisuje dokument z powrotem do pliku lub strumienia. Obie klasy obsługują instrukcję with dla automatycznego czyszczenia. Każdy Layer udostępnia własne metadane — name, bounds, is_visible, opacity, clipping, blend_mode_key oraz informacje o kanale/maskach — i podzbiór tych właściwości może być zmieniony w miejscu i zapisany z powrotem do pliku.
To wydanie jest przeznaczone dla programistów, którzy potrzebują przeglądać lub wprowadzać ograniczone edycje metadanych w plikach PSD/PSB w ramach kodu Python bez komercyjnej licencji — narzędzia pipeline zasobów, które raportują strukturę warstw, skrypty budujące, które zmieniają nazwę lub przełączają widoczność warstw przed przekazaniem, lub testowe zestawy, które muszą odczytać nagłówek PSD i dane warstw bez pełnego silnika renderującego. Biblioteka nie renderuje danych pikselowych ani nie konwertuje PSD/PSB do innych formatów obrazów — jest to czytnik/pisarz skoncentrowany na metadanych dla formatu kontenera PSD/PSB.
Co zawiera się
Inspekcja dokumentu
PsdImage.load() analizuje nagłówek pliku PSD lub PSB do typowanych właściwości — width, height, bits_per_channel, color_mode, version, compression, size i is_flatten — bez dekodowania danych pikselowych.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Layers: {image.layer_count}, Compression: {image.compression}")
Metadane warstwy
Każdy wpis w PsdImage.layers jest Layer udostępniającym własne granice, widoczność, krycie, przycinanie i metadane trybu mieszania.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
for layer in image.layers:
print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")
Obsługiwane edycje metadanych
Podzbiór właściwości warstwy może być zmieniony w miejscu i zapisany ponownie przy użyciu PsdImage.save(): nazwa, widoczność, krycie, przycinanie, klucz trybu mieszania oraz cztery krawędzie granic.
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("input.psd") as image:
layer = image.layers[0]
layer.name = f"{layer.name} (edited)"
layer.is_visible = not layer.is_visible
layer.opacity = 128
layer.blend_mode_key = BlendMode.MULTIPLY
image.save("output.psd")
Szybki start
Zainstaluj pakiet, a następnie załaduj plik PSD lub PSB, przejrzyj jego warstwy i zapisz go ponownie:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATHfrom aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")
for layer in image.layers:
print(f" {layer.name}: {layer.bounds}")
image.save("output.psd")
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
Open Source i licencjonowanie
Aspose.PSD FOSS dla Python jest licencjonowany na licencji MIT i może być używany w produktach komercyjnych bez opłat royalty, bez znaku wodnego wersji ewaluacyjnej ani limitu użycia.
Biblioteka nie ma żadnych zewnętrznych natywnych zależności — jedynie standardowa biblioteka Python jest wymagana w czasie wykonywania.