Cum să lucrați cu Aspose.PSD FOSS Core API în .NET

Cum să lucrați cu Aspose.PSD FOSS Core API în .NET

Aspose.PSD FOSS pentru .NET încarcă și inspectează structura documentului PSD/PSB prin PsdImage, o subclasă a Image. Acest articol acoperă încărcarea unui document, citirea antetului și a resurselor de imagini, și salvarea acestuia înapoi pe disc.

Ghid pas cu pas

Pasul 1: Instalează pachetul

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

Pasul 2: Importă clasele necesare

using Aspose.PSD.FileFormats.Psd;

Pasul 3: Încarcă un document PSD/PSB

PsdImage.Load deschide un document dintr-o cale de fișier sau dintr-un flux:

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

Pasul 4: Inspectați antetul documentului

PsdImage expune câmpurile antetului citite din documentul analizat: Width, Height, BitsPerChannel, ColorMode (o valoare ColorModes), și Compression (o valoare 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}");

Valorile ColorModes includ Bitmap, Grayscale, Indexed, Rgb și Cmyk, printre altele (Multichannel, Duotone, Lab). Valorile CompressionMethod sunt Raw, RLE, ZipWithoutPrediction și o variantă ZIP-with-prediction.


Pasul 5: Citiți blocurile de resurse ale imaginii

ImageResources returnează intrările ResourceBlock analizate ale documentului. Fiecare bloc expune ID, Name și Size:

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

ImageResources este doar în citire în această construcție FOSS — atribuirea la el aruncă NotSupportedException (vezi Limitările cunoscute în FAQ).


Pasul 6: Salvați documentul

image.Save("output.psd");

Probleme comune și remedieri

PsdLoadException la încărcarea unui fișier. Intrarea nu este un document PSD/PSB valid, sau antetul său a eșuat la validare. Confirmați că fișierul este un fișier PSD/PSB autentic înainte de încărcare.

NotSupportedException la setarea ImageResources or GlobalLayerResources. Acești setatori nu sunt suportați în această construcție FOSS. Tratați ImageResources ca fiind doar în citire.

ColorMode or Compression se tipărește ca o valoare numerică în loc de un nume. Convertește proprietatea la tipul său enum în mod explicit, sau folosește .ToString(), pentru a obține numele lizibil (ColorModes.Rgb, nu 3).

Întrebări frecvente

Pot încărca un fișier PSD dintr-un flux în loc de o cale de fișier?

Da — PsdImage.Load are o suprasarcină care acceptă un Stream.

Include ImageResources datele de strat?

Nu. ImageResources conține blocuri de resurse la nivel de document (analizate din secțiunea de resurse de imagine PSD). Datele la nivel de strat sunt citite prin PsdImage.Layers — vezi Lucrul cu straturile.

Este PsdImage.Version versiunea formatului de fișier PSD?

Nu. PsdImage.Version raportează un număr de versiune intern Aspose.PSD-compatibil API (în prezent 6) — nu are legătură cu faptul dacă fișierul încărcat este PSD sau PSB.

Vezi și:

 Română