1. محصولات
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

Aspose.PSD FOSS برای .NET

کتابخانه متن‌باز .NET برای بارگذاری، بررسی و ذخیره‌سازی فایل‌های PSD/PSB با دسترسی به فراداده لایه. دارای مجوز MIT، بدون نیاز به Adobe Photoshop.

کتابخانه منبع باز .NET برای فایل‌های PSD/PSB

Aspose.PSD FOSS for .NET یک کتابخانهٔ رایگان، تحت مجوز MIT، خالص C# برای بارگذاری، بازرسی، و ذخیرهٔ فایل‌های Adobe Photoshop PSD و PSB بدون نیاز به Adobe Photoshop یا هر زمان‌اجرای مالکیتی. این کتابخانه یک API سبک و مستقل که بر PsdImage و Layer متمرکز است و به توسعه‌دهندگان .NET دسترسی برنامه‌نویسی به ساختار سند PSD بدون وابستگی بومی برای کامپایل فراهم می‌کند. کتابخانه ابعاد، حالت رنگ، عمق بیت و روش فشرده‌سازی یک فایل PSD/PSB را می‌خواند و روش را فراهم می‌کند و هر لایه را از طریق PsdImage.Layers در دسترس قرار می‌دهد: هر Layer نام خود را، محدوده، شفافیت، قابلیت مشاهده و کلید حالت ترکیب (BlendMode) را گزارش می‌کند، به همراه اطلاعات سطح پایین کانال (ChannelInformation) و داده‌های ماسک لایه (LayerMaskData). یک زیرمجموعه از متادیتای لایه — نام، محدوده (Left/Top/Right/Bottom) و حالت ترکیب — می‌تواند در محل تغییر یابد و با PsdImage.Save() به دیسک ذخیره شود؛ همه چیزهای دیگر بر روی سطح به‌صورت فقط-خواندنی به‌صورت پیش‌فرض در این ساختار FOSS باقی بماند. Aspose.PSD FOSS for .NET تحت مجوز MIT است. آن را با dotnet add package Aspose.PSD.FOSS — کتابخانه هیچ وابستگی بومی شخص ثالثی ندارد، فقط .NET BCL. برای خانوادهٔ محصولات سازمانی، به Aspose.PSD — Enterprise Product Family مراجعه کنید.

بارگذاری و بررسی فایل‌های PSD/PSB

  • Image.Load(filePath) یا Image.Load(stream) یک فایل را باز می‌کند و یک Image برمی‌گرداند، که برای دسترسی خاص به PSD به PsdImage تبدیل می‌شود
  • PsdImage.Width، Height و Size ابعاد بوم را گزارش می‌دهند
  • PsdImage.ColorMode (ColorModes)، BitsPerChannel و Compression (CompressionMethod) توصیف می‌کنند که داده‌های پیکسل چگونه رمزگذاری شده‌اند
  • PsdImage.Version (PsdVersion) تفاوت بین PSD استاندارد و نوع سند بزرگ PSB را مشخص می‌کند

اعتبارسنجی و فهرست‌گذاری فایل‌های طراحی

  • اعتبارسنجی یک دسته از فایل‌های طراحی پیش از تحویل به یک فرآیند پایین‌دستی
  • ساخت یک فهرست دارایی سبک وزن از ابعاد و حالت‌های رنگی PSD/PSB
  • شناسایی فایل‌های PSB (سند بزرگ) که نیاز به پردازش متفاوتی نسبت به PSD استاندارد دارند

کار با لایه‌ها

  • PsdImage.Layers تمام Layerها را به ترتیب سند برمی‌گرداند؛ PsdImage.ActiveLayer گزارش می‌دهد کدام یک فعال است
  • هر Layer ویژگی‌های Name، Bounds، Opacity، IsVisible و BlendModeKey (BlendMode) را نشان می‌دهد
  • Layer.ChannelInformation و Layer.LayerMaskData متادیتای کانال و ماسک را برای بررسی عمیق‌تر باز می‌کند
  • Layer.ChannelsCount تعداد کانال‌های تصویری که یک لایه دارد را گزارش می‌دهد

ساختار لایه حسابرسی

  • بررسی ساختار لایه‌های یک PSD بدون باز کردن Photoshop
  • تولید گزارشی از نام لایه‌ها، وضعیت نمایش و حالت‌های ترکیب برای بررسی طراحی
  • شناسایی لایه‌های مخفی یا با شفافیت صفر که از ویرایش‌های قبلی باقی مانده‌اند

ویرایش متادیتای لایهٔ پایه

  • Layer.Name، Layer.Left/Top/Right/Bottom و Layer.BlendModeKey می‌توانند به‌صورت مستقیم تنظیم شوند
  • PsdImage.Save(filePath) یا PsdImage.Save(stream) سند تغییر یافته را به‌صورت دائمی روی دیسک ذخیره می‌کند
  • بارگذاری مجدد یک فایل ذخیره‌شده با Image.Load تأیید می‌کند که ویرایش‌ها به‌درستی در مسیر دو طرفه اعمال شده‌اند
  • خصوصیات غیرقید‌شده در بالا (اطلاعات کانال، داده‌های ماسک، دامنه‌های ترکیب، منابع تصویر) در صورت تنظیم، NotSupportedException را پرتاب می‌کنند — این نسخه فقط ویرایش‌های متادیتا را پشتیبانی می‌کند و بازنویسی کامل را پشتیبانی نمی‌کند

ویرایش‌های سبک، اسکریپت‌پذیر

  • لایه‌ها را به‌صورت برنامه‌نویسی‌شده بازنام‌گذاری کنید به عنوان بخشی از یک خط لولهٔ خودکار سازماندهی فایل
  • جعبه‌حدود لایه را بدون ابزار طراحی جابجا یا تغییر اندازه دهید
  • حالت‌های ترکیبی را به‌صورت دسته‌ای در بسیاری از فایل‌ها به‌روزرسانی کنید برای سازگاری

بازرسی بلوک‌های منبع و وضعیت سند

  • PsdImage.ImageResources و GlobalLayerResources مجموعه‌های ResourceBlock/LayerResource را نمایش می‌دهند
  • PsdImage.GlobalLayerMaskInfo اطلاعات ماسک لایه در سرتاسر سند را گزارش می‌کند
  • PsdImage.IsFlatten و HasTransparencyData پرچم‌های سطح سند را گزارش می‌دهند
  • PsdLoadException و PsdSaveException خطاهای بارگذاری/ذخیره‌سازی را با پیام‌های واضح نمایش می‌دهند

تشخیص و بازرسی

  • تشخیص دلیل شکست بارگذاری یک فایل PSD خاص، با یک استثنای تایپ‌شده به‌جای خطای کلی
  • بررسی اینکه آیا فایل قبل از پردازش بیشتر به‌صورت فلتن ذخیره شده است یا خیر
  • بازرسی بلوک‌های منبع جاسازی‌شده برای متادیتای سطح فرمت

بارگذاری یک فایل PSD و بررسی لایه‌های آن

فایل را با Image.Load بارگذاری کنید و نتیجه را به PsdImage تبدیل کنید تا به اعضای خاص PSD دسترسی داشته باشید.

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

ویرایش متادیتای لایه و ذخیره

نام لایه، مرزها و حالت ترکیب می‌توانند در همان محل تغییر داده شوند و به دیسک ذخیره شوند.

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

خواندن اطلاعات کانال (فقط-خواندنی)

اطلاعات کانال می‌تواند خوانده شود اما نمی‌تواند مجدداً اختصاص یابد — تلاش برای تنظیم آن باعث پرتاب NotSupportedException می‌شود.

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 است. می‌توانید آن را استفاده، تغییر داده و تحت شرایط مجوز MIT، از جمله در محصولات تجاری، توزیع مجدد کنید.

چگونه Aspose.PSD FOSS for .NET را نصب کنم؟

برای دریافت دستور نصب فعلی، به بخش نصب بالا مراجعه کنید.

کدام فرمت‌ها می‌تواند Aspose.PSD FOSS for .NET بخواند و بنویسد؟

این برنامه فایل‌های PSD و PSB (سند بزرگ فتوشاپ) را بارگذاری و ذخیره می‌کند. داده‌های پیکسل را به سایر فرمت‌های رستری مانند PNG یا JPEG رندر یا صادر نمی‌کند.

کلاس نقطهٔ ورودی اصلی چیست؟

PsdImage (یک زیرکلاس از Image). یک سند را با PsdImage.Load بارگذاری کنید، سپس مجموعه Layers و ویژگی‌های هدر آن را بخوانید.

آیا می‌توانم متادیتای لایه را ویرایش کنم؟

بله — Layer یک setter کارآمد برای چندین ویژگی، مانند قابلیت مشاهده و نام، فراهم می‌کند و خود PsdImage.Layers نیز یک setter کارآمد برای جایگزینی مجموعه دارد. برخی ویژگی‌های خاص (اطلاعات کانال، داده‌های ماسک، محدوده‌های ترکیب، و برخی منابع سطح سند) در این نسخه FOSS فقط-خواندنی هستند و در صورت تنظیم، NotSupportedException را پرتاب می‌کنند.

  

منابع پشتیبانی و آموزش

 فارسی