PSD (سند فتوشاپ) یک فرمت فایل تصویری بومی است که توسط برنامه محبوب Photoshop Adobe استفاده می شود. معمولاً برای ایجاد لوگوها، بروشورها و سایر تصاویر که فایل PSD حاوی چندین لایه است استفاده می شود. در موارد خاص، ممکن است لازم باشد فایلهای PSD را به صورت برنامهنویسی دستکاری کنیم. در این مقاله یاد می گیریم که چگونه با استفاده از C# یک لایه جدید در PSD اضافه کنیم.
موضوعات زیر در این مقاله پوشش داده خواهد شد:
- C# API برای افزودن لایه جدید در PSD
- افزودن یک لایه جدید به PSD
- افزودن یک لایه متن جدید به PSD
- ایجاد یک لایه از تصویر در PSD
C# API برای افزودن لایه جدید در PSD
برای ایجاد یک لایه جدید در یک فایل PSD، از API Aspose.PSD for .NET استفاده خواهیم کرد. از ایجاد، ویرایش یا دستکاری PSD و چندین [فرمت فایل پشتیبانی شده] دیگر پشتیبانی می کند.
کلاس PsdImage API امکان بارگیری، ویرایش و ذخیره فایلهای PSD را میدهد. متد AddRegularLayer() این کلاس یک لایه معمولی جدید اضافه می کند. در حالی که روش AddTextLayer(string, Rectangle) یک لایه متن جدید به PSD اضافه می کند. این کلاس همچنین روش Save(string) را ارائه میکند که PSD را در محل فایل مشخص شده ذخیره میکند.
لطفاً یا DLL API را دانلود کنید یا با استفاده از NuGet آن را نصب کنید.
PM> Install-Package Aspose.PSD
اضافه کردن لایه جدید به PSD با استفاده از C#
با دنبال کردن مراحل زیر می توانیم یک لایه جدید به فایل PSD اضافه کنیم:
- ابتدا فایل PSD را به عنوان PsdImage با استفاده از کلاس Image بارگذاری کنید.
- بعد، یک شی برای اضافه کردن مانند Rectangle آماده کنید.
- سپس متد AddRegularLayer() را فراخوانی کنید.
- به صورت اختیاری، موقعیت لایه را مانند بالا، چپ، راست و پایین تنظیم کنید.
- پس از آن، با استفاده از متد SaveArgb32Pixels() شی را به لایه اختصاص دهید.
- در نهایت فایل خروجی را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نحوه افزودن یک لایه جدید به فایل PSD در سی شارپ را نشان می دهد.
// این مثال کد نحوه ایجاد لایه های جدید در فایل تصویری PSD را نشان می دهد.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";
// یک PSD موجود را بارگیری کنید
var im = (PsdImage)Image.Load(sourceFileName);
// آماده سازی دو آرایه int
var data1 = new int[2500];
var data2 = new int[2500];
// مستطیل ها را تعریف کنید
var rect1 = new Rectangle(0, 0, 50, 50);
var rect2 = new Rectangle(0, 0, 100, 25);
for (int i = 0; i < 2500; i++)
{
data1[i] = -10000000;
data2[i] = -10000000;
}
// لایه 1 را اضافه کنید
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);
// اضافه کردن لایه 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);
// ذخیره PSD
im.Save(exportPath, new PsdOptions());
اضافه کردن لایه متن جدید به PSD با استفاده از C#
با دنبال کردن مراحل زیر میتوانیم یک لایه متن جدید به فایل PSD اضافه کنیم:
- ابتدا فایل PSD را به عنوان PsdImage با استفاده از کلاس Image بارگذاری کنید.
- بعد یک مستطیل تعریف کنید.
- سپس متد AddTexLayer() را فراخوانی کنید. ورودی متن و یک شی مستطیل را به عنوان آرگومان می گیرد.
- پس از آن، موقعیت لایه را مانند بالا، چپ، راست و پایین تنظیم کنید.
- در نهایت فایل خروجی را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نحوه افزودن یک لایه متن جدید به فایل PSD در سی شارپ را نشان می دهد.
// این مثال کد نحوه ایجاد لایه های جدید در فایل تصویری PSD را نشان می دهد.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";
// یک PSD موجود را بارگیری کنید
var im = (PsdImage)Image.Load(sourceFileName);
// یک لایه متن اضافه کنید
var layer1 = im.AddTextLayer("Hello", new Rectangle(0, 0, 120, 50));
layer1.Left = 10;
layer1.Top = 25;
// ذخیره PSD
im.Save(exportPath, new PsdOptions());
ایجاد لایه جدید از تصویر در PSD با استفاده از C#
همچنین میتوانیم با دنبال کردن مراحل زیر، یک لایه جدید از یک تصویر PNG یا JPG به یک فایل PSD اضافه کنیم:
- ابتدا فایل PSD را به عنوان PsdImage با استفاده از کلاس Image بارگذاری کنید.
- سپس، فایل تصویر PNG را در یک جریان باز کنید.
- سپس، یک نمونه از کلاس Layer با شی جریان ایجاد کنید.
- پس از آن، متد AddLayer() را فراخوانی کنید. شی لایه را به عنوان آرگومان می گیرد.
- در نهایت فایل خروجی را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نشان می دهد که چگونه می توان یک لایه جدید از یک تصویر PNG به یک فایل PSD در سی شارپ اضافه کرد.
// این مثال کد نحوه ایجاد لایه جدید از یک تصویر PNG در فایل تصویری PSD را نشان می دهد.
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";
// یک تصویر PSD جدید ایجاد کنید
var image = new PsdImage(200, 200);
// یک تصویر PNG را بارگیری کنید
string filePath = @"C:\Files\PSD\aspose_logo.png";
var stream = new FileStream(filePath, FileMode.Open);
Layer layer = null;
try
{
// لایه را به PSD اضافه کنید
layer = new Layer(stream);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw e;
}
// ذخیره PSD
image.Save(outputFilePath);
مجوز موقت رایگان دریافت کنید
برای امتحان Aspose.PSD برای دات نت بدون محدودیت ارزیابی، می توانید [مجوز موقت رایگان 14 دریافت کنید.
نتیجه
در این مقاله یاد گرفتیم که چگونه:
- یک تصویر PSD جدید ایجاد کنید.
- یک لایه معمولی جدید و یک لایه متن در یک تصویر PSD ایجاد کنید.
- یک تصویر PNG یا JPG را به عنوان یک لایه جدید در PSD با استفاده از C# وارد کنید.
علاوه بر این، میتوانید با استفاده از مستندات درباره Aspose.PSD برای داتنت اطلاعات بیشتری کسب کنید و ویژگیهای مختلف پشتیبانی شده توسط API را بررسی کنید. در صورت وجود هرگونه ابهامی، لطفاً با ما در [تالار گفتمان16 تماس بگیرید.