PsdImage ve
Layer etrafında odaklanan hafif, bağımsız bir API sunar, .NET geliştiricilere
bir PSD belgesinin yapısına derleme gerektiren yerel bağımlılık olmadan programatik erişim sağlar. Kütüphane, bir PSD/PSB dosyasının boyutlarını, renk modunu, bit derinliğini ve sıkıştırma
yöntemini okur ve her katmanı PsdImage.Layers aracılığıyla ortaya çıkar: her Layer adını,
sınırlarını, opaklığını, görünürlüğünü ve karıştırma modu anahtarını (BlendMode) rapor eder,
daha düşük seviyeli kanal bilgileri (ChannelInformation) ve maske verileri (LayerMaskData) ile birlikte. Katman meta verilerinin bir alt kümesi —
ad, sınırlar (Left/Top/Right/Bottom) ve karıştırma modu — yerinde
değiştirilebilir ve PsdImage.Save() ile diske geri kaydedilebilir; diğer tüm
öğeler bu FOSS derlemesinde tasarım gereği sadece okunur. Aspose.PSD FOSS for .NET MIT lisanslıdır. Şunu kurun
dotnet add package Aspose.PSD.FOSS — kütüphane sıfır üçüncü taraf yerel
bağımlılığa sahiptir, yalnızca .NET BCL. Kurumsal ürün ailesi için, Aspose.PSD — Enterprise Product Family adresine bakın.Image.Load(filePath) veya Image.Load(stream) bir dosya açar ve bir Image döndürür, PSD’ye özgü erişim için PsdImage‘e dönüştürülürPsdImage.Width, Height ve Size tuval boyutlarını rapor ederPsdImage.ColorMode (ColorModes), BitsPerChannel ve Compression (CompressionMethod) piksel verisinin nasıl kodlandığını açıklarPsdImage.Version (PsdVersion) standart PSD ile büyük belge PSB varyantını ayırırPsdImage.Layers belgedeki sırayla her Layerı döndürür; PsdImage.ActiveLayer hangisinin aktif olduğunu rapor ederLayer, Name, Bounds, Opacity, IsVisible ve BlendModeKey (BlendMode) özelliklerini gösterirLayer.ChannelInformation ve Layer.LayerMaskData, daha derin inceleme için kanal ve maske meta verilerini ortaya çıkarırLayer.ChannelsCount, bir katmanın kaç görüntü kanalı taşıdığını rapor ederLayer.Name, Layer.Left/Top/Right/Bottom ve Layer.BlendModeKey doğrudan ayarlanabilirPsdImage.Save(filePath) veya PsdImage.Save(stream) değiştirilmiş belgeyi diske kaydederImage.Load ile kaydedilmiş bir dosyanın yeniden yüklenmesi, düzenlemelerin doğru bir şekilde çift yönlü olduğunu doğrularNotSupportedException fırlatır — bu yapı sadece meta veri düzenlemelerini destekler, tam yeniden yazarak desteklemezPsdImage.ImageResources ve GlobalLayerResources, ResourceBlock/LayerResource koleksiyonlarını ortaya çıkarırPsdImage.GlobalLayerMaskInfo, belge genelinde katman maskesi bilgisini raporlarPsdImage.IsFlatten ve HasTransparencyData, belge düzeyindeki bayrakları raporlarPsdLoadException ve PsdSaveException, yükleme/kaydetme hatalarını açık mesajlarla gösterirBir dosyayı Image.Load ile yükleyin ve sonucu PSD’e özgü üyeler için PsdImage tipine dönüştürün.
using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");
Katman adı, sınırları ve harmanlama modu yerinde değiştirilebilir ve diske geri kaydedilebilir.
using (var image = (PsdImage)Image.Load("test.psd"))
{
image.Layers[0].Name = "Renamed layer";
image.Layers[0].Left = 10;
image.Layers[0].Top = 20;
image.Layers[0].Right = 40;
image.Layers[0].Bottom = 60;
image.Layers[0].BlendModeKey = BlendMode.Multiply;
image.Save("edited.psd");
}
using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");
Kanal bilgileri okunabilir ancak yeniden atanamaz — ayarlamaya çalışmak NotSupportedException hatası fırlatır.
using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException
Aspose.PSD FOSS for .NET MIT lisanslıdır. MIT lisansının şartları kapsamında, ticari ürünler dahil olmak üzere, onu kullanabilir, değiştirebilir ve yeniden dağıtabilirsiniz.
Yukarıdaki kurulum bölümüne bakın, geçerli kurulum komutu için.
PSD ve PSB (Photoshop büyük belge) dosyalarını yükler ve kaydeder. PNG veya JPEG gibi diğer raster formatlarına piksel verisini render etmez veya dışa aktarmaz.
PsdImage (Image sınıfının bir alt sınıfı). Bir belgeyi PsdImage.Load ile yükleyin, ardından Layers koleksiyonunu ve başlık özelliklerini okuyun.
Evet — Layer birkaç özelliğe, örneğin görünürlük ve isim gibi, çalışan bir ayarlayıcı sunar ve PsdImage.Layers kendisi koleksiyonu değiştirmek için çalışan bir ayarlayıcıya sahiptir. Birkaç belirli özellik (kanal bilgisi, maske verileri, karışım aralıkları ve bazı belge- düzeyi kaynaklar) bu FOSS derlemesinde yalnızca okunabilir ve ayarlandığında NotSupportedException fırlatır.