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()tillPsdImageför att komma åt PSD-specifika medlemmar. - Omslut
Dispose()-värda objekt i ettusing-sats;PsdImageimplementerarIDisposable. - Behandla
ImageResources,GlobalLayerResources,ActiveLayerochHasTransparencyDatasom skrivskyddade även om de exponerar en setter. - Kontrollera
image.Layers.Lengthinnan du indexerarimage.Layers— ett plattat dokument kan ha noll lager.
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
NotSupportedException vid inställning av ImageResources | Denna egenskap är skrivskyddad i FOSS-byggnaden trots att den har en setter | Läs värdet; försök inte att återtilldela det |
Tom image.Layers-array på ett plattat dokument | IsFlatten är true och dokumentet har inga parsade lager | Kontrollera 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/Metod | Beskrivning |
|---|---|
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 / IsFlatten | Egenskaper för dokumenthuvud |
PsdImage.ImageResources | Analyserade bildresursblock (skrivskyddade) |