Kärna API

Kärn-API

PsdImage är ingångspunkten för att läsa in, inspektera och spara PSD/PSB-dokument. Den utökar den abstrakta basklassen Image, som deklarerar Width, Height, Bounds, Load(), Save() och Dispose().


Laddning och sparning av dokument

Image.Load() accepterar en filsökväg eller en Stream och returnerar en Image; kasta resultatet till PsdImage för att komma åt resten av dokumentytan. PsdImage.Save() skriver dokumentet tillbaka till en filsökväg eller ström.

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

Egenskaper för dokumenthuvud

PsdImage exponerar det analyserade huvudet som typade egenskaper: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size och 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}");

Bildresurser

PsdImage.ImageResources returnerar den analyserade ResourceBlock[]-arrayen. I den här FOSS-byggnaden kan ImageResources, GlobalLayerResources, ActiveLayer och HasTransparencyData läsas men inte omassigneras — deras set-metoder kastar NotSupportedException.

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

Tips och bästa praxis

  • Kasta alltid resultatet av Image.Load() till PsdImage för att komma åt PSD-specifika medlemmar.
  • Omslut Dispose()-värda objekt i ett using-sats; PsdImage implementerar IDisposable.
  • Behandla ImageResources, GlobalLayerResources, ActiveLayer och HasTransparencyData som skrivskyddade även om de exponerar en setter.
  • Kontrollera image.Layers.Length innan du indexerar image.Layers — ett plattat dokument kan ha noll lager.

Vanliga problem

ProblemOrsakLösning
NotSupportedException vid inställning av ImageResourcesDenna egenskap är skrivskyddad i FOSS-byggnaden trots att den har en setterLäs värdet; försök inte att återtilldela det
Tom image.Layers-array på ett plattat dokumentIsFlatten är true och dokumentet har inga parsade lagerKontrollera image.Layers.Length (eller image.IsFlatten) innan du indexerar i image.Layers

FAQ

Avkodas pixeldata när ett PSD-dokument laddas?

Nej. PsdImage.Load() analyserar dokumenthuvudet, lagermetadata och resurser utan att avkoda eller rendera pixeldata.

Kan jag konvertera en PSD-fil till ett annat bildformat?

Nej. Detta bibliotek laddar, inspekterar och sparar endast PSD/PSB-dokument — det renderar inte pixeldata eller konverterar till andra bildformat.


API Reference Sammanfattning

Klass/MetodBeskrivning
Image.Load(string) / Image.Load(Stream)Laddar ett PSD- eller PSB-dokument
PsdImage.Save(string) / PsdImage.Save(Stream)Sparar dokumentet
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenEgenskaper för dokumenthuvud
PsdImage.ImageResourcesAnalyserade bildresursblock (skrivskyddade)

Se även

 Svenska