مقدمه
Aspose.PSD FOSS برای .NET یک کتابخانهٔ منبع باز جدید برای کار با فایلهای PSD و PSB (سند بزرگ فتوشاپ) از کد .NET است. این کتابخانه تحت مجوز MIT منتشر شده، فقط به .NET نسخهٔ 10.0 در زمان اجرا نیاز دارد و وابستگیهای شخص ثالث دیگری ندارد. بسته با using Aspose.PSD.FOSS; وارد میشود.
کتابخانه حول کلاس PsdImage سازماندهی شده است که کلاس پایهٔ انتزاعی Image را گسترش میدهد و همچنین کلاس Layer. Image.Load() / PsdImage.Load() یک سند را از مسیر فایل یا جریان بارگذاری میکنند و اطلاعات سرآیند (Width, Height, ColorMode, Version, Compression) و مجموعهٔ تجزیهشدهٔ Layers را در دسترس میگذارند؛ PsdImage.Save() سند را به یک فایل یا جریان باز مینویسد. هر Layer متادیتای خود را — Name, Bounds, IsVisible, Opacity, Clipping, BlendModeKey، و اطلاعات کانال/ماسک — افشا میکند و زیرمجموعهای از این ویژگیها میتواند در محل تغییر یابد و دوباره در فایل ذخیره شود.
این انتشار برای توسعهدهندگانی است که نیاز دارند متادیتای فایلهای PSD/PSB را در داخل یک کدبیس .NET بدون داشتن مجوز تجاری بررسی یا ویرایشهای محدود انجام دهند — ابزارهای خط لولهٔ دارایی که ساختار لایهها را گزارش میکنند، اسکریپتهای ساخت که قبل از تحویل نام لایهها را تغییر یا نمایشپذیری آنها را تغییر میدهند، یا فیکسچرهای تست که باید سرآیند PSD و دادههای لایه را بدون یک موتور رندر کامل بخوانند. این کتابخانه دادههای پیکسلی را رندر نمیکند و PSD/PSB را به فرمتهای تصویری دیگر تبدیل نمیکند — این یک خواندن/نوشتن متمرکز بر متادیتا برای قالب کانتینر PSD/PSB است.
چه چیزهایی شامل میشود
بازرسی سند
PsdImage.Load() سرآیند یک فایل PSD یا PSB را به ویژگیهای تایپی تبدیل میکند — Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size و IsFlatten — بدون رمزگشایی دادههای پیکسلی.
using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Layers: {image.Layers.Length}, Compression: {image.Compression}");
متادیتا لایه
هر ورودی در PsdImage.Layers یک Layer است که مرزها، قابلیت نمایش، شفافیت، برش و متادیتای حالت ترکیب خود را نشان میدهد.
foreach (var layer in image.Layers)
{
Console.WriteLine($"{layer.Name}: {layer.Bounds}, Visible={layer.IsVisible}, Opacity={layer.Opacity}");
}
ویرایشهای متادیتا پشتیبانیشده
یک زیرمجموعه از ویژگیهای لایه میتواند در محل تغییر داده شود و با PsdImage.Save() بازنویسی گردد: نام، قابلیت نمایش، شفافیت، برش، کلید حالت ترکیب، و چهار لبهٔ مرزها.
Layer layer = image.Layers[0];
layer.Name = $"{layer.Name} (edited)";
layer.IsVisible = !layer.IsVisible;
layer.Opacity = 128;
layer.BlendModeKey = BlendMode.Multiply;
image.Save(outputPath);
شروع سریع
پکیج را نصب کنید، سپس یک فایل PSD یا PSB را بارگذاری کنید، لایههای آن را بررسی کنید، و آن را دوباره ذخیره کنید:
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;
using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}, Layers: {image.Layers.Length}");
foreach (var layer in image.Layers)
{
Console.WriteLine($" {layer.Name}: {layer.Bounds}");
}
image.Save("output.psd");
فرمتهای پشتیبانیشده
| قالب | پسوند | خواندن | نوشتن |
|---|---|---|---|
| سند فتوشاپ | psd | ✓ | ✓ |
| سند بزرگ فتوشاپ | psb | ✓ | ✓ |
منبع باز و مجوزدهی
Aspose.PSD FOSS برای .NET دارای مجوز MIT است و میتواند در محصولات تجاری بدون حقالامتیاز استفاده شود، بدون هیچ علامت ارزیابی یا محدودیت استفاده.
این بسته در نسخه 1.0.0 است و فقط به .NET 10.0 در زمان اجرا نیاز دارد — هیچ وابستگی شخص ثالث دیگری ندارد.