Jak pracovat s Aspose.PSD FOSS Core API v .NET
Aspose.PSD FOSS pro .NET načítá a kontroluje strukturu dokumentu PSD/PSB pomocí PsdImage, podtřídy Image. Tento článek popisuje načítání dokumentu, čtení jeho hlavičky a obrázkových zdrojů a uložení zpět na disk.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildKrok 2: Importujte požadované třídy
using Aspose.PSD.FileFormats.Psd;Krok 3: Načtěte dokument PSD/PSB
PsdImage.Load otevře dokument z cesty k souboru nebo proudu:
using var image = PsdImage.Load("input.psd");Krok 4: Zkontrolujte hlavičku dokumentu
PsdImage zveřejňuje pole hlavičky načtená z parsovaného dokumentu: Width, Height, BitsPerChannel, ColorMode (hodnota typu ColorModes), a Compression (hodnota typu CompressionMethod):
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}");Hodnoty ColorModes zahrnují Bitmap, Grayscale, Indexed, Rgb a Cmyk, mezi jinými (Multichannel, Duotone, Lab). Hodnoty CompressionMethod jsou Raw, RLE, ZipWithoutPrediction a varianta ZIP s předpovědí.
Krok 5: Přečtěte bloky zdrojů obrázků
ImageResources vrací parsované položky ResourceBlock dokumentu. Každý blok zveřejňuje ID, Name a Size:
foreach (var resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID} \"{resource.Name}\" - {resource.Size} bytes");
}ImageResources je pouze pro čtení v tomto FOSS buildu — přiřazení do něj vyvolá výjimku NotSupportedException (viz Známá omezení v FAQ).
Krok 6: Uložte dokument
image.Save("output.psd");Běžné problémy a opravy
PsdLoadException při načítání souboru. Vstup není platný dokument PSD/PSB, nebo jeho hlavička neprošla validací. Ověřte, že soubor je skutečný soubor PSD/PSB před načtením.
NotSupportedException při nastavování ImageResources or GlobalLayerResources. Tyto nastavitelské metody nejsou v tomto FOSS buildu podporovány. Považujte ImageResources za pouze pro čtení.
ColorMode or Compression se vypisuje jako číselná hodnota místo názvu. Přetypujte vlastnost na její výčtový typ explicitně, nebo použijte .ToString(), abyste získali čitelný název (ColorModes.Rgb, ne 3).
Často kladené otázky
Mohu načíst soubor PSD ze streamu místo cesty k souboru?
Ano — PsdImage.Load má přetížení, které přijímá Stream.
Zahrnuje ImageResources data vrstev?
Ne. ImageResources obsahuje bloky zdrojů na úrovni dokumentu (parsované ze sekce zdrojů obrázku PSD). Data na úrovni vrstvy jsou čtena přes PsdImage.Layers — viz Práce s vrstvami.
Je PsdImage.Version verzí formátu souboru PSD?
Ne. PsdImage.Version uvádí interní číslo verze API kompatibilní s Aspose.PSD (aktuálně 6) — nemá souvislost s tím, zda je načtený soubor PSD nebo PSB.