Hoe te werken met de Aspose.PSD FOSS Core API in .NET

Hoe te werken met de Aspose.PSD FOSS Core API in .NET

Aspose.PSD FOSS voor .NET laadt en inspecteert de PSD/PSB documentstructuur via PsdImage, een subklasse van Image. Dit artikel behandelt het laden van een document, het lezen van de header en afbeeldingsbronnen, en het opslaan ervan terug naar schijf.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build

Stap 2: Importeer vereiste klassen

using Aspose.PSD.FileFormats.Psd;

Stap 3: Laad een PSD/PSB Document

PsdImage.Load opent een document vanaf een bestandspad of een stream:

using var image = PsdImage.Load("input.psd");

Stap 4: Inspecteer de documentheader

PsdImage toont headervelden die zijn gelezen uit het geparseerde document: Width, Height, BitsPerChannel, ColorMode (een ColorModes waarde), en Compression (een CompressionMethod waarde):

Console.WriteLine($"{image.Width}x{image.Height}, {image.BitsPerChannel} bpc");
Console.WriteLine($"Color mode: {image.ColorMode}");   // e.g. ColorModes.Rgb
Console.WriteLine($"Compression: {image.Compression}"); // e.g. CompressionMethod.RLE
Console.WriteLine($"Flattened: {image.IsFlatten}");

ColorModes waarden omvatten Bitmap, Grayscale, Indexed, Rgb en Cmyk, onder andere (Multichannel, Duotone, Lab). CompressionMethod waarden zijn Raw, RLE, ZipWithoutPrediction en een ZIP-met-prediction variant.


Stap 5: Lees afbeeldingsresourceblokken

ImageResources retourneert de geparseerde ResourceBlock items van het document. Elk blok toont ID, Name en Size:

foreach (var resource in image.ImageResources)
{
    Console.WriteLine($"Resource {resource.ID} \"{resource.Name}\" - {resource.Size} bytes");
}

ImageResources is alleen-lezen in deze FOSS-build — toewijzen eraan gooit een fout NotSupportedException (zie Bekende beperkingen in de FAQ).


Stap 6: Sla het document op

image.Save("output.psd");

Veelvoorkomende problemen en oplossingen

PsdLoadException bij het laden van een bestand. De invoer is geen geldig PSD/PSB-document, of de header is niet gevalideerd. Bevestig dat het bestand een echt PSD/PSB-bestand is voordat je het laadt.

NotSupportedException bij het instellen ImageResources or GlobalLayerResources. Deze setters worden niet ondersteund in deze FOSS-build. Beschouw ImageResources als alleen-lezen.

ColorMode or Compression wordt afgedrukt als een numerieke waarde in plaats van een naam. Cast de eigenschap expliciet naar zijn enum-type, of gebruik .ToString(), om de leesbare naam te krijgen (ColorModes.Rgb, niet 3).

Veelgestelde vragen

Kan ik een PSD-bestand laden vanuit een stream in plaats van een bestandspad?

Ja — PsdImage.Load heeft een overload die een Stream accepteert.

Bevat ImageResources laaggegevens?

Nee. ImageResources bevat resourceblokken op documentniveau (geparseerd uit de PSD-afbeeldingsresourcesectie). Laagniveau-gegevens worden gelezen via PsdImage.Layers — zie Werken met lagen.

Is PsdImage.Version de versie van het PSD-bestandsformaat?

Nee. PsdImage.Version geeft een interne Aspose.PSD-compatibele API-versienummer weer (momenteel 6) — het heeft niets te maken met of het geladen bestand PSD of PSB is.

Zie ook

 Nederlands