Giriş
Aspose.PSD FOSS for .NET PSD ve PSB belgelerini küçük bir sınıf seti aracılığıyla yükler, inceler ve kaydeder. Bu gönderi, giriş gönderisinin derinlemesine ele almadığı çekirdek API’in bölümlerine bakar: Image/PsdImage kalıtım ilişkisi, kütüphane genelinde kullanılan geometri değer türleri ve kütüphanenin yükleme ve kaydetme hatalarını nasıl raporladığı.
Neler Dahil
Görüntü ve PsdImage
Image, soyut temel sınıftır ve Width, Height, Bounds, Load(), Save() ve Dispose()‘yı ortaya çıkarır. PsdImage, Image.Load() tarafından PSD/PSB girişi için döndürülen mühürlenmiş, somut uygulamadır — sonucu PsdImage‘a dönüştürmek, belgenin geri kalan yüzeyini ortaya çıkarır: ColorMode, Version, Layers, Compression, BitsPerChannel ve daha fazlası.
using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Bounds: {image.Bounds}"); // from the Image base class
Console.WriteLine($"ColorMode: {image.ColorMode}"); // PsdImage-specific
Geometri Değer Türleri
Point, Size, Rectangle ve RectangleF, API boyunca sınır ve koordinatlar için kullanılan değer türleridir — Layer.Bounds ve Image.Bounds her ikisi de Rectangle‘dır, ve PsdImage.Size bir Size‘tir. Rectangle, gerçek geometri metodlarını taşır: Contains(), Intersect(), Union(), Inflate() ve FromLeftTopRightBottom(), diğerleri arasında.
Rectangle layerBounds = image.Layers[0].Bounds;
Rectangle imageBounds = image.Bounds;
bool fullyInside = imageBounds.Contains(layerBounds);
Rectangle overlap = Rectangle.Intersect(imageBounds, layerBounds);
Console.WriteLine($"Layer fits inside image: {fullyInside}, overlap: {overlap}");
Kaynak Blokları ve İstisnalar
PsdImage.ImageResources ayrıştırılmış ResourceBlock[] dizisini döndürür — her blok ID, DataSize, Name ve Signature öğelerini ortaya çıkarır. Bu FOSS derlemesinde, ImageResources, GlobalLayerResources, ActiveLayer ve HasTransparencyData okunabilir ancak yeniden atılamaz — her birinin çağrıldığında NotSupportedException fırlatan bir ayarlayıcısı vardır, bu yüzden bunları özellik gibi görünseler bile salt-okunur olarak ele alın.
Yükleme ve kaydetme hataları iki özel istisna türü olarak ortaya çıkar: belge ayrıştırılamadığında PsdLoadException, belge geri yazılamadığında ise PsdSaveException.
try
{
using var image = (PsdImage)Image.Load(inputPath);
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Failed to load {inputPath}: {ex.Message}");
}
Hızlı Başlangıç
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildusing Aspose.PSD.FileFormats.Psd;
try
{
using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine($"Bounds: {image.Bounds}, ColorMode: {image.ColorMode}");
Console.WriteLine($"ImageResources: {image.ImageResources.Length}");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Load failed: {ex.Message}");
}
Desteklenen Biçimler
| Biçim | Uzantı | Oku | Yaz |
|---|---|---|---|
| Photoshop Belgesi | psd | ✓ | ✓ |
| Photoshop Büyük Belgesi | psb | ✓ | ✓ |
Açık Kaynak & Lisanslama
Aspose.PSD FOSS .NET için MIT lisanslıdır ve telifsiz olarak ticari ürünlerde kullanılabilir, değerlendirme filigranı veya kullanım sınırı olmaksızın.
Paket, 1.0.0 sürümünde ve çalışma zamanında yalnızca .NET 10.0 gerektiriyor — başka üçüncü taraf bağımlılığı yok.