Kern API
Kern-API
PsdImage is het toegangspunt voor het laden, inspecteren en opslaan van PSD/PSB documenten. Het breidt de abstracte Image basisklasse uit, die Width, Height, Bounds, Load(), Save() en Dispose() declareert.
Documenten laden en opslaan
Image.Load() accepteert een bestandspad of een Stream en retourneert een Image; cast het resultaat naar PsdImage om toegang te krijgen tot de rest van het documentoppervlak. PsdImage.Save() schrijft het document terug naar een bestandspad of stream.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Documentheader-eigenschappen
PsdImage geeft de geparseerde header weer als getypeerde eigenschappen: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size en 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}");Afbeeldingsbronnen
PsdImage.ImageResources retourneert de geparseerde ResourceBlock[] array. In deze FOSS-build kunnen ImageResources, GlobalLayerResources, ActiveLayer en HasTransparencyData worden gelezen maar niet opnieuw toegewezen — hun set-methoden gooien NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Tips en best practices
- Cast altijd het resultaat van
Image.Load()naarPsdImageom PSD-specifieke leden te benaderen. - Omhul
Dispose()-waardige objecten in eenusing-statement;PsdImageimplementeertIDisposable. - Behandel
ImageResources,GlobalLayerResources,ActiveLayerenHasTransparencyDataals alleen-lezen, ook al bieden ze een setter. - Controleer
image.Layers.Lengthvoordat je indexeert inimage.Layers— een afgevlakt document kan nul lagen hebben.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
NotSupportedException bij het instellen van ImageResources | Deze eigenschap is alleen-lezen in de FOSS-build, ondanks dat er een setter is | Lees de waarde; probeer deze niet opnieuw toe te wijzen |
Lege image.Layers-array in een geflatteerd document | IsFlatten is true en het document heeft geen geparseerde lagen | Controleer image.Layers.Length (of image.IsFlatten) voordat je indexeert in image.Layers |
FAQ
Decodeert het laden van een PSD-document pixelgegevens?
Nee. PsdImage.Load() parseert de documentheader, laagmetadata en bronnen zonder pixelgegevens te decoderen of weer te geven.
Kan ik een PSD-bestand naar een ander afbeeldingsformaat converteren?
Nee. Deze bibliotheek laadt, inspecteert en slaat alleen PSD/PSB-documenten op — hij rendert geen pixelgegevens en converteert niet naar andere afbeeldingsformaten.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Image.Load(string) / Image.Load(Stream) | Laadt een PSD- of PSB-document |
PsdImage.Save(string) / PsdImage.Save(Stream) | Slaat het document op |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Eigenschappen van de documentheader |
PsdImage.ImageResources | Geparseerde afbeeldingsresourceblokken (alleen-lezen) |