Alap API

Alap API

PsdImage a belépési pont a PSD/PSB dokumentumok betöltéséhez, ellenőrzéséhez és mentéséhez. Kiterjeszti az absztrakt Image alaposztályt, amely deklarálja a Width, Height, Bounds, Load(), Save() és Dispose() elemeket.


Dokumentumok betöltése és mentése

Image.Load() elfogad egy fájlútvonalat vagy egy Stream és visszaad egy Image; a visszatérési értéket PsdImage-ra kell cast-olni a dokumentum többi felületének eléréséhez. PsdImage.Save() a dokumentumot visszaírja egy fájlútvonalra vagy adatfolyamra.

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

Dokumentumfejléc tulajdonságok

PsdImage a feldolgozott fejlécet típusosított tulajdonságokként teszi elérhetővé: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size és 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}");

Kép erőforrások

PsdImage.ImageResources visszaadja a feldolgozott ResourceBlock[] tömböt. Ebben a FOSS változatban a ImageResources, GlobalLayerResources, ActiveLayer és HasTransparencyData olvasható, de nem írható át – a setterjeik NotSupportedException kivételt dobnak.

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

Tippek és legjobb gyakorlatok

  • Mindig alakítsd át a Image.Load() eredményét PsdImage típusra, hogy elérhesd a PSD-specifikus tagokat.
  • Csomagold Dispose()-érvényes objektumokat egy using utasításba; a PsdImage megvalósítja a IDisposable-t.
  • Kezeld a ImageResources, GlobalLayerResources, ActiveLayer és HasTransparencyData elemeket csak olvasásra, még akkor is, ha rendelkeznek beállítással.
  • Ellenőrizd a image.Layers.Length értékét, mielőtt a image.Layers indexelését végeznéd — egy laposított dokumentumnak lehet nulla rétege.

Gyakori problémák

ProblémaOkJavítás
NotSupportedException a ImageResources beállításakorEz a tulajdonság csak olvasható a FOSS kiadásban, annak ellenére, hogy van beállítójaOlvasd ki az értéket; ne próbáld újra hozzárendelni
Üres image.Layers tömb egy laposított dokumentumbanIsFlatten true és a dokumentumnak nincs feldolgozott rétegeEllenőrizze a(z) image.Layers.Length (vagy image.IsFlatten) értéket, mielőtt a(z) image.Layers indexelné

FAQ

A PSD-dokumentum betöltése dekódolja a pixeladatokat?

Nem. PsdImage.Load() elemzi a dokumentumfejlécet, a réteg metaadatait és az erőforrásokat anélkül, hogy dekódolná vagy megjelenítené a pixeladatokat.

Átkonvertálhatok egy PSD fájlt egy másik képfájlformátumba?

Nem. Ez a könyvtár csak PSD/PSB dokumentumokat tölt be, vizsgál meg és ment – nem jelenít meg pixeladatokat, és nem konvertál más képfájlformátumokra.


API Reference összefoglaló

Osztály/MódszerLeírás
Image.Load(string) / Image.Load(Stream)Betölt egy PSD vagy PSB dokumentumot
PsdImage.Save(string) / PsdImage.Save(Stream)Ment egy dokumentumot
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenDokumentumfejléc tulajdonságai
PsdImage.ImageResourcesFeldolgozott kép erőforrás blokkok (csak olvasható)

Lásd még:

 Magyar