Úvod
Aspose.PSD FOSS pro Python je nová open-source knihovna pro práci se soubory PSD a PSB (Photoshop large document) z Python kódu. Je vydána pod licencí MIT, nemá žádné třetí strany nativní závislosti a vyžaduje během běhu pouze standardní knihovnu Python. Balíček se importuje jako aspose_psd_foss.
Knihovna je organizována kolem třídy PsdImage, která rozšiřuje abstraktní základní třídu Image, a třídy Layer. Image.load() / PsdImage.load() načtou dokument z cesty k souboru nebo ze streamu a zpřístupňují informace v hlavičce (width, height, color_mode, version, compression) a parsovanou kolekci layers; PsdImage.save() zapisuje dokument zpět do souboru nebo streamu. Obě třídy podporují příkaz with pro automatické uvolnění zdrojů. Každý Layer vystavuje vlastní metadata — name, bounds, is_visible, opacity, clipping, blend_mode_key a informace o kanálech/maskách — a podmnožina těchto vlastností může být změněna přímo a uložena zpět do souboru.
Toto vydání je určeno vývojářům, kteří potřebují prohlížet nebo provádět omezené úpravy metadat souborů PSD/PSB v rámci kódu Python bez komerční licence — nástroje asset-pipeline, které hlásí strukturu vrstev, build skripty přejmenovávající nebo přepínající viditelnost vrstev před předáním, nebo testovací fixury, které potřebují číst hlavičku PSD a data vrstev bez kompletního renderovacího enginu. Knihovna nevykresluje pixelová data ani nepřevádí PSD/PSB do jiných obrazových formátů — jedná se o čtečku/zapisovač zaměřený na metadata pro kontejnerový formát PSD/PSB.
Co je zahrnuto
Inspekce dokumentu
PsdImage.load() parsuje hlavičku souboru PSD nebo PSB do typovaných vlastností — width, height, bits_per_channel, color_mode, version, compression, size a is_flatten — aniž by dekódoval pixelová data.
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}")
Metadata vrstvy
Každý záznam v PsdImage.layers je Layer, který zveřejňuje své vlastní hranice, viditelnost, průhlednost, ořez a metadata režimu prolnutí.
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}")
Podporované úpravy metadat
Podmnožinu vlastností vrstvy lze měnit přímo a zapsat zpět pomocí PsdImage.save(): název, viditelnost, průhlednost, ořez, klíč režimu prolnutí a čtyři hrany ohraničení.
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")
Rychlý start
Nainstalujte balíček, poté načtěte soubor PSD nebo PSB, prozkoumejte jeho vrstvy a uložte jej zpět:
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")
Podporované formáty
| Formát | Rozšíření | Číst | Zapsat |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
Open Source & Licencování
Aspose.PSD FOSS pro Python je licencováno pod MIT a může být použito v komerčních produktech bez poplatků, bez vodotisku pro hodnocení ani omezení používání.
Knihovna nemá žádné nativní závislosti třetích stran — za běhu je vyžadována pouze standardní knihovna Python.