Introducere
Aspose.PSD FOSS pentru Python este o nouă bibliotecă open-source pentru lucrul cu fișiere PSD și PSB (Photoshop large document) din cod Python. Este lansată sub licența MIT, nu are dependențe native de la terți și necesită doar biblioteca standard Python la rulare. Pachetul este importat ca aspose_psd_foss.
Biblioteca este organizată în jurul clasei PsdImage, care extinde clasa abstractă de bază Image, și a clasei Layer. Image.load() / PsdImage.load() încarcă un document dintr-o cale de fișier sau dintr-un flux, expunând informațiile de antet (width, height, color_mode, version, compression) și colecția layers parsată; PsdImage.save() scrie documentul înapoi într-un fișier sau flux. Ambele clase suportă declarația with pentru curățare automată. Fiecare Layer expune propriile metadate — name, bounds, is_visible, opacity, clipping, blend_mode_key și informații despre canal/mască — și un subset al acestor proprietăți poate fi modificat la fața locului și salvat înapoi în fișier.
Această versiune este destinată dezvoltatorilor care trebuie să inspecteze sau să efectueze editări limitate ale metadatelor fișierelor PSD/PSB într-un cod Python fără o licență comercială — instrumente de pipeline de active care raportează structura straturilor, scripturi de build care redenumesc sau comută vizibilitatea stratului înainte de predare, sau fixture-uri de testare care trebuie să citească antetul PSD și datele stratului fără un motor complet de randare. Biblioteca nu redă datele de pixeli sau convertește PSD/PSB în alte formate de imagine — este un cititor/scriitor axat pe metadate pentru formatul container PSD/PSB.
Ce este inclus
Inspectarea documentului
PsdImage.load() analizează antetul unui fișier PSD sau PSB în proprietăți tipizate — width, height, bits_per_channel, color_mode, version, compression, size și is_flatten — fără a decoda datele de pixeli.
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}")
Metadate strat
Fiecare intrare în PsdImage.layers este un Layer care expune propriile sale limite, vizibilitate, opacitate, decupare și metadatele modului de amestecare.
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}")
Editări de metadate acceptate
Un subset de proprietăți ale stratului poate fi modificat la fața locului și scris înapoi cu PsdImage.save(): nume, vizibilitate, opacitate, decupare, cheia modului de amestecare și cele patru margini ale limitelor.
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")
Începe rapid
Instalați pachetul, apoi încărcați un fișier PSD sau PSB, inspectați straturile sale și salvați-l din nou:
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")
Formate acceptate
| Format | Extensie | Citește | Scrie |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
Open Source & Licențiere
Aspose.PSD FOSS pentru Python este licențiat sub MIT și poate fi utilizat în produse comerciale fără redevențe, fără marcaj de evaluare sau limită de utilizare.
Biblioteca nu are nicio dependență nativă terță parte — este necesară doar biblioteca standard Python la rulare.