Nucleu API
API de bază
PsdImage este punctul de intrare pentru încărcarea, inspectarea și salvarea documentelor PSD/PSB. Extinde clasa de bază abstractă Image, care declară doar load() — restul suprafeței documentului (width, height, save(), suport pentru managerul de context) este definit pe PsdImage însuși, nu este moștenit.
Încărcarea și salvarea documentelor
Image.load() acceptă o cale de fișier sau un flux și returnează un Image; pentru intrarea PSD/PSB aceasta este întotdeauna un PsdImage, astfel încât suprafața documentului este disponibilă imediat fără o conversie explicită. PsdImage suportă, de asemenea, instrucțiunea with pentru curățare automată, iar PsdImage.save() scrie documentul înapoi pe o cale de fișier sau flux.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Proprietăți ale antetului documentului
PsdImage expune antetul parsat ca proprietăți tipizate: width, height, bits_per_channel, color_mode, version, compression, size și is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Resurse de imagine
PsdImage.image_resources returnează lista parsată de obiecte ResourceBlock. În această versiune FOSS, image_resources, global_layer_resources, active_layer și has_transparency_data pot fi citite, dar nu pot fi reatribuite — setatoarele lor ridică NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Sfaturi și cele mai bune practici
Image.load()deja returnează unPsdImagepentru intrarea PSD/PSB — nu este necesară conversia, spre deosebire de alte porturi ale acestei biblioteci în alte limbaje.- Folosiți instrucțiunea
with;PsdImagesuportă protocolul managerului de context pentru curățare. - Tratați
image_resources,global_layer_resources,active_layerșihas_transparency_dataca fiind doar pentru citire, chiar dacă expun un setter. - Verificați
image.layer_countînainte de a indexa înimage.layers— un document aplatizat poate avea zero straturi.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
NotSupportedException când se setează image_resources | Această proprietate este numai în citire în versiunea FOSS, deși are un setter | Citește valoarea; nu încerca să o reatribuie |
Listă image.layers goală pe un document aplatizat | is_flatten este True și documentul nu are straturi analizate | Verificați image.layer_count (sau image.is_flatten) înainte de a indexa în image.layers |
FAQ
Încărcarea unui document PSD decodifică datele de pixeli?
Nu. PsdImage.load() analizează antetul documentului, metadatele stratului și resursele fără a decoda sau reda datele pixel.
Pot să convertesc un fișier PSD într-un alt format de imagine?
Nu. Această bibliotecă încarcă, inspectează și salvează numai documente PSD/PSB — nu redă datele pixel și nu convertește în alte formate de imagine.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
Image.load(path) / Image.load(stream) | Încarcă un document PSD sau PSB |
PsdImage.save(path) / PsdImage.save(stream) | Salvează documentul |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Proprietăți antet document |
PsdImage.image_resources | Blocuri de resurse de imagine analizate (doar citire) |