Çekirdek API
Temel API
PsdImage, PSD/PSB belgelerini yüklemek, incelemek ve kaydetmek için giriş noktasıdır. Soyut Image temel sınıfını genişletir; bu sınıf Width, Height, Bounds, Load(), Save() ve Dispose() öğelerini bildirir.
Belgeleri Yükleme ve Kaydetme
Image.Load(), bir dosya yolu ya da Stream kabul eder ve bir Image döndürür; sonucun PsdImage tipine dönüştürülmesi belgenin geri kalan yüzeyine erişim sağlar. PsdImage.Save(), belgeyi bir dosya yolu ya da akısa geri yazar.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Belge Başlığı Özellikleri
PsdImage, ayrıştırılmış başlığı tiplenmiş özellikler olarak sunar: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size, ve IsFlatten.
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");Görsel Kaynakları
PsdImage.ImageResources, ayrıştırılmış ResourceBlock[] dizisini döndürür. Bu FOSS sürümünde, ImageResources, GlobalLayerResources, ActiveLayer ve HasTransparencyData okunabilir ancak yeniden atanamaz — ayarlayıcıları NotSupportedException hatası fırlatır.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}İpuçları ve En İyi Uygulamalar
- Her zaman
Image.Load()sonucunuPsdImagetipine dönüştürerek PSD’ye özgü üyelerine erişin. Dispose()değerindeki nesneleri birusingifadesiyle sarmalayın;PsdImageIDisposable‘yi uygular.ImageResources,GlobalLayerResources,ActiveLayerveHasTransparencyData‘ü bir setter ortaya çıksa bile salt okunur olarak ele alın.image.Layers.Length‘iimage.Layers‘e indekslemeden önce kontrol edin — düzleştirilmiş bir belge sıfır katmana sahip olabilir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
NotSupportedException ImageResources ayarlanırken | Bu özellik, bir ayarlayıcı bulunmasına rağmen FOSS sürümünde yalnızca okunabilir. | Değeri okuyun; yeniden atamaya çalışmayın. |
Düzleştirilmiş bir belgede boş image.Layers dizisi | IsFlatten, true ve belge hiçbir ayrıştırılmış katmana sahip değil. | image.Layers.Length (veya image.IsFlatten) kontrol edin, image.Layers içine indekslemeden önce |
FAQ
Bir PSD belgesi yüklemek piksel verilerini çözer mi?
Hayır. PsdImage.Load() belge başlığını, katman meta verilerini ve kaynakları, piksel verilerini kodlamadan veya render etmeden ayrıştırır.
Bir PSD dosyasını başka bir görüntü formatına dönüştürebilir miyim?
Hayır. Bu kütüphane yalnızca PSD/PSB belgelerini yükler, inceler ve kaydeder — piksel verilerini render etmez veya diğer görüntü formatlarına dönüştürmez.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Image.Load(string) / Image.Load(Stream) | Bir PSD veya PSB belgesini yükler |
PsdImage.Save(string) / PsdImage.Save(Stream) | Belgeyi kaydeder |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Belge başlığı özellikleri |
PsdImage.ImageResources | Ayrıştırılmış görüntü kaynak blokları (salt okunur) |