Jak pracovat s Aspose.PSD FOSS Core API v .NET

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 build

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

Viz také:

 Čeština