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 buildSteg 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.