Hur du arbetar med Aspose.PSD FOSS Core API i .NET

Hur du arbetar med Aspose.PSD FOSS Core API i .NET

Aspose.PSD FOSS för .NET laddar och inspekterar PSD/PSB dokumentstruktur genom PsdImage, en underklass till Image. Denna artikel täcker laddning av ett dokument, läsning av dess header och bildresurser, samt sparande tillbaka till disk.

Steg-för-steg guide

Steg 1: Installera paketet

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

Steg 2: Importera nödvändiga klasser

using Aspose.PSD.FileFormats.Psd;

Steg 3: Ladda ett PSD/PSB dokument

PsdImage.Load öppnar ett dokument från en filsökväg eller en ström:

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

Steg 4: Inspektera dokumenthuvudet

PsdImage avslöjar huvudfält lästa från det analyserade dokumentet: Width, Height, BitsPerChannel, ColorMode (ett ColorModes-värde), och Compression (ett CompressionMethod-värde):

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-värden inkluderar Bitmap, Grayscale, Indexed, Rgb och Cmyk, bland annat (Multichannel, Duotone, Lab). CompressionMethod-värden är Raw, RLE, ZipWithoutPrediction och en ZIP-med-prediktion-variant.


Steg 5: Läs bildresursblock

ImageResources returnerar dokumentets analyserade ResourceBlock-poster. Varje block avslöjar ID, Name och Size:

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

ImageResources är skrivskyddad i detta FOSS-bygge — att tilldela den kastar NotSupportedException (se Kända begränsningar i FAQ).


Steg 6: Spara dokumentet

image.Save("output.psd");

Vanliga problem och lösningar

PsdLoadException vid inläsning av en fil. Inmatningen är inte ett giltigt PSD/PSB-dokument, eller så misslyckades dess rubrik med validering. Bekräfta att filen är en äkta PSD/PSB-fil innan du laddar den.

NotSupportedException vid inställning av ImageResources or GlobalLayerResources. Dessa setters stöds inte i detta FOSS-bygge. Behandla ImageResources som skrivskyddad.

ColorMode or Compression skrivs ut som ett numeriskt värde istället för ett namn. Kasta egenskapen till dess enum-typ explicit, eller använd .ToString(), för att få det läsbara namnet (ColorModes.Rgb, inte 3).

Vanliga frågor

Kan jag läsa in en PSD-fil från en ström istället för en filväg?

Ja — PsdImage.Load har en overload som accepterar en Stream.

Inkluderar ImageResources lagerdata?

Nej. ImageResources innehåller dokumentnivåresursblock (parsade från PSD-bildresurssektionen). Lagernivådata läses genom PsdImage.Layers — se Arbeta med lager.

Är PsdImage.Version PSD-filformatets version?

Nej. PsdImage.Version rapporterar ett internt Aspose.PSD-kompatibelt API-versionsnummer (för närvarande 6) — det är orelaterat till om den laddade filen är PSD eller PSB.

Se även

 Svenska