معرفی

Aspose.PSD FOSS برای .NET فایل‌های PSD و PSB را بارگذاری، بازرسی و ذخیره می‌کند از طریق مجموعه‌ای کوچک از کلاس‌ها. این پست به بخش‌هایی از هسته API می‌پردازد که پست معرفی به‌طور عمیق پوشش نداده بود: رابطهٔ وراثت Image/PsdImage، انواع مقادیر هندسی استفاده‌شده در سراسر کتابخانه، و نحوهٔ گزارش خطاهای بارگذاری و ذخیره‌سازی توسط کتابخانه.


چه چیزهایی شامل می‌شود

تصویر و PsdImage

Image کلاس پایهٔ انتزاعی است و Width، Height، Bounds، Load()، Save() و Dispose() را در دسترس می‌گذارد. PsdImage پیاده‌سازی بسته و ملموسی است که توسط Image.Load() برای ورودی PSD/PSB برگردانده می‌شود — تبدیل نتیجه به PsdImage بقیهٔ سطح سند را نشان می‌دهد: ColorMode، Version، Layers، Compression، BitsPerChannel و موارد دیگر.

using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Bounds: {image.Bounds}");       // from the Image base class
Console.WriteLine($"ColorMode: {image.ColorMode}");  // PsdImage-specific

انواع مقادیر هندسی

Point، Size، Rectangle و RectangleF انواع مقادیری هستند که برای مرزها و مختصات در سراسر API استفاده می‌شوند — Layer.Bounds و Image.Bounds هر دو Rectangle هستند، و PsdImage.Size یک Size است. Rectangle شامل متدهای واقعی هندسی است: Contains()، Intersect()، Union()، Inflate() و FromLeftTopRightBottom()، به‌علاوه موارد دیگر.

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}");

بلوک‌های منبع و استثناها

PsdImage.ImageResources آرایهٔ تجزیه‌شدهٔ ResourceBlock[] را برمی‌گرداند — هر بلوک ID، DataSize، Name و Signature را در اختیار می‌گذارد. در این ساختار FOSS، ImageResources، GlobalLayerResources، ActiveLayer و HasTransparencyData قابل خواندن‌اند اما قابل اختصاص مجدد نیستند — هر کدام setter‌ای دارند که اگر فراخوانی شود NotSupportedException را پرتاب می‌کند، بنابراین آنها را همچون فقط-خواندنی در نظر بگیرید حتی اگر به‌صورت ویژگی‌ها ظاهر شوند.

خطاهای بارگذاری و ذخیره به‌صورت دو نوع استثنای اختصاصی ظاهر می‌شوند: PsdLoadException زمانی که یک سند قابل تجزیه نیست، و 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}");
}

شروع سریع

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}");
}

قالب‌های پشتیبانی‌شده

فرمتپسوندخواندننوشتن
سند فتوشاپpsd✓✓
سند بزرگ فتوشاپpsb✓✓

منبع باز و مجوزدهی

Aspose.PSD FOSS برای .NET تحت مجوز MIT است و می‌تواند در محصولات تجاری بدون حق‌الزحمه استفاده شود، بدون هیچ علامت‌آبی ارزیابی یا محدودیت استفاده.

این بسته در نسخه 1.0.0 است و فقط به .NET 10.0 در زمان اجرا نیاز دارد — هیچ وابستگی شخص ثالث دیگری ندارد.


شروع کار

منابع مرتبط