.NET içinde Aspose.PSD FOSS Core API ile Nasıl Çalışılır
Aspose.PSD FOSS for .NET, PSD/PSB belge yapısını PsdImage aracılığıyla, Image‘in bir alt sınıfı üzerinden yükler ve inceler. Bu makale bir belgeyi yüklemeyi, başlığını ve görüntü kaynaklarını okumayı ve diske geri kaydetmeyi kapsar.
Adım Adım Kılavuz
Adım 1: Paketi Kurun
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildAdım 2: Gerekli Sınıfları İçeri Aktarın
using Aspose.PSD.FileFormats.Psd;Adım 3: Bir PSD/PSB Belgesi Yükleyin
PsdImage.Load bir dosya yolundan veya bir akıştan belge açar:
using var image = PsdImage.Load("input.psd");Adım 4: Belge Başlığını İncele
PsdImage, ayrıştırılmış belgeden okunan başlık alanlarını ortaya çıkarır: Width, Height, BitsPerChannel, ColorMode (ColorModes değeri), ve Compression (CompressionMethod değeri):
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 değerleri Bitmap, Grayscale, Indexed, Rgb ve Cmyk gibi, ayrıca (Multichannel, Duotone, Lab) içerir. CompressionMethod değerleri Raw, RLE, ZipWithoutPrediction ve bir ZIP-with-prediction varyantıdır.
Adım 5: Görüntü Kaynak Bloklarını Oku
ImageResources, belgenin ayrıştırılmış ResourceBlock girişlerini döndürür. Her blok ID, Name ve Size alanlarını ortaya çıkarır:
foreach (var resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID} \"{resource.Name}\" - {resource.Size} bytes");
}ImageResources bu FOSS derlemesinde yalnızca okunabilir — ona atama yapmak bir hata oluşturur NotSupportedException (bkz. Bilinen Kısıtlamalar içinde FAQ).
Adım 6: Belgeyi Kaydet
image.Save("output.psd");Yaygın Sorunlar ve Çözümler
PsdLoadException bir dosya yüklenirken. Girdi geçerli bir PSD/PSB belgesi değil ya da başlığı doğrulamadan geçemedi. Yüklemeden önce dosyanın gerçek bir PSD/PSB dosyası olduğunu doğrulayın.
NotSupportedException ayar yapılırken ImageResources or GlobalLayerResources. Bu ayarlayıcılar bu FOSS derlemesinde desteklenmiyor. Şöyle davranın ImageResources yalnızca okunabilir olarak.
ColorMode or Compression ad yerine sayısal bir değer olarak yazdırır. Özelliği açıkça enum tipine dönüştürün, ya da kullanın .ToString(), okunabilir adı almak için (ColorModes.Rgb, değil 3).
Sık Sorulan Sorular
Bir dosya yolu yerine bir akıştan PSD dosyası yükleyebilir miyim?
Evet — PsdImage.Load bir Stream kabul eden bir overload’a sahiptir.
ImageResources katman verilerini içeriyor mu?
Hayır. ImageResources belge düzeyindeki kaynak bloklarını tutar (PSD görüntü kaynakları bölümünden ayrıştırılmıştır). Katman düzeyindeki veriler şunun aracılığıyla okunur PsdImage.Layers — bakınız Katmanlarla Çalışma.
PsdImage.Version PSD dosya formatı sürümü mü?
Hayır. PsdImage.Version, dahili bir Aspose.PSD-uyumlu API sürüm numarasını bildirir (şu anda 6) — bu, yüklenen dosyanın PSD mi PSB mi olduğuyla ilgili değildir.