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ă un PsdImage pentru intrarea PSD/PSB — nu este necesară conversia, spre deosebire de alte porturi ale acestei biblioteci în alte limbaje.
  • Folosiți instrucțiunea with; PsdImage suportă protocolul managerului de context pentru curățare.
  • Tratați image_resources, global_layer_resources, active_layer și has_transparency_data ca fiind doar pentru citire, chiar dacă expun un setter.
  • Verificați image.layer_count înainte de a indexa în image.layers — un document aplatizat poate avea zero straturi.

Probleme comune

ProblemăCauzăRemediere
NotSupportedException când se setează image_resourcesAceastă proprietate este numai în citire în versiunea FOSS, deși are un setterCitește valoarea; nu încerca să o reatribuie
Listă image.layers goală pe un document aplatizatis_flatten este True și documentul nu are straturi analizateVerificaț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_flattenProprietăți antet document
PsdImage.image_resourcesBlocuri de resurse de imagine analizate (doar citire)

Vezi și:

 Română