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 build
using 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çimUzantıOkuYaz
Photoshop Belgesipsd✓✓
Photoshop Büyük Belgesipsb✓✓

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.


Başlarken

İlgili Kaynaklar