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 مراجعه کنید.Image.Load(filePath) یا Image.Load(stream) یک فایل را باز میکند و یک Image برمیگرداند، که برای دسترسی خاص به PSD به PsdImage تبدیل میشودPsdImage.Width، Height و Size ابعاد بوم را گزارش میدهندPsdImage.ColorMode (ColorModes)، BitsPerChannel و Compression (CompressionMethod) توصیف میکنند که دادههای پیکسل چگونه رمزگذاری شدهاندPsdImage.Version (PsdVersion) تفاوت بین PSD استاندارد و نوع سند بزرگ PSB را مشخص میکندPsdImage.Layers تمام Layerها را به ترتیب سند برمیگرداند؛ PsdImage.ActiveLayer گزارش میدهد کدام یک فعال استLayer ویژگیهای Name، Bounds، Opacity، IsVisible و BlendModeKey (BlendMode) را نشان میدهدLayer.ChannelInformation و Layer.LayerMaskData متادیتای کانال و ماسک را برای بررسی عمیقتر باز میکندLayer.ChannelsCount تعداد کانالهای تصویری که یک لایه دارد را گزارش میدهد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 خطاهای بارگذاری/ذخیرهسازی را با پیامهای واضح نمایش میدهندفایل را با 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، از جمله در محصولات تجاری، توزیع مجدد کنید.
برای دریافت دستور نصب فعلی، به بخش نصب بالا مراجعه کنید.
این برنامه فایلهای PSD و PSB (سند بزرگ فتوشاپ) را بارگذاری و ذخیره میکند. دادههای پیکسل را به سایر فرمتهای رستری مانند PNG یا JPEG رندر یا صادر نمیکند.
PsdImage (یک زیرکلاس از Image). یک سند را با PsdImage.Load بارگذاری کنید، سپس مجموعه Layers و ویژگیهای هدر آن را بخوانید.
بله — Layer یک setter کارآمد برای چندین ویژگی، مانند قابلیت مشاهده و نام، فراهم میکند و خود PsdImage.Layers نیز یک setter کارآمد برای جایگزینی مجموعه دارد. برخی ویژگیهای خاص (اطلاعات کانال، دادههای ماسک، محدودههای ترکیب، و برخی منابع سطح سند) در این نسخه FOSS فقط-خواندنی هستند و در صورت تنظیم، NotSupportedException را پرتاب میکنند.