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ă Width, Height, Bounds, Load(), Save() și Dispose().


Încărcarea și salvarea documentelor

Image.Load() acceptă o cale de fișier sau un Stream și returnează un Image; convertește rezultatul la PsdImage pentru a accesa restul suprafeței documentului. PsdImage.Save() scrie documentul înapoi la o cale de fișier sau flux.

using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);

Proprietăți ale antetului documentului

PsdImage expune antetul analizat ca proprietăți tipizate: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size și IsFlatten.

Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");

Resurse de imagini

PsdImage.ImageResources returnează matricea ResourceBlock[] analizată. În această construcție FOSS, ImageResources, GlobalLayerResources, ActiveLayer și HasTransparencyData pot fi citite, dar nu reasignate — setatoarele lor aruncă NotSupportedException.

foreach (ResourceBlock resource in image.ImageResources)
{
    Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}

Sfaturi și cele mai bune practici

  • Întotdeauna convertește rezultatul lui Image.Load() la PsdImage pentru a accesa membrii specifici PSD.
  • Înfășoară obiectele demne de Dispose() într-o declarație using; PsdImage implementează IDisposable.
  • Tratează ImageResources, GlobalLayerResources, ActiveLayer și HasTransparencyData ca fiind doar citire, chiar dacă expun un setter.
  • Verifică image.Layers.Length înainte de a indexa în image.Layers — un document aplatizat poate avea zero straturi.

Probleme comune

ProblemăCauzăRemediere
NotSupportedException când se setează ImageResourcesAceastă proprietate este doar în citire în versiunea FOSS, deși are un setterCitește valoarea; nu încerca să o reasignezi
Matrice image.Layers goală pe un document aplatizatIsFlatten este true și documentul nu are straturi analizateVerificați image.Layers.Length (sau image.IsFlatten) înainte de a indexa în image.Layers

FAQ

Încărcarea unui document PSD decodează 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ă doar documente PSD/PSB — nu redă datele pixel și nu convertește în alte formate de imagine.


API Reference Rezumat

Clasă/MetodăDescriere:
Image.Load(string) / Image.Load(Stream)Încarcă un document PSD sau PSB
PsdImage.Save(string) / PsdImage.Save(Stream)Salvează documentul
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenProprietăţi antet ale documentului
PsdImage.ImageResourcesBlocuri de resurse de imagine analizate (doar citire)

Vezi și:

 Română