تلاعب بتنسيقات Adobe Photoshop

دمج طبقات PSD في طبقات أخرى

تصدير الصورة إلى PSD

تعتبر PSD، وثيقة PhotoShop، هي تنسيق الملف الافتراضي المستخدم من قبل Adobe Photoshop للعمل مع الصور. تسمح Aspose.PSD لك بتحميل وتحرير وحفظ الملفات إلى PSD بحيث يمكن فتحها وتحريرها في Photoshop. يوضح هذا المقال كيفية حفظ ملف إلى PSD باستخدام Aspose.PSD، ويناقش أيضًا بعض الإعدادات التي يمكن استخدامها عند الحفظ بهذا التنسيق. PsdOptions هو فئة متخصصة في مساحة ImageOptions تستخدم لتصدير الصور إلى PSD. للتصدير إلى PSD، قم بإنشاء مثيل من الفئة Image، إما بتحميله من ملف صورة موجود (كمصغرات على سبيل المثال) أو إنشاءه من الصفر. يشرح هذا المقال كيفية القيام بذلك. في الأمثلة أدناه، يتم إنشاء صورة من الصفر. بمجرد إنشاء الصورة وملأ البيانات بالبكسل، قم بحفظ الصورة باستخدام طريقة Save التابعة لفئة Image، وقم بتوفير كائن PsdOptions كالمعامل الثاني. يمكن تعيين العديد من خصائص فئة PsdOptions للتحويل المتقدم. بعض الخصائص هي ColorMode، CompressionMethod و Version. يدعم Aspose.PSD طرق ضغط التالية من خلال تعداد CompressionMethod:

  • CompressionMethod.Raw
  • CompressionMethod.RLE
  • CompressionMethod.ZipWithoutProtection
  • CompressionMethod.ZipWithProtection

يتم دعم وضع الألوان التالية من خلال تعداد ColorModes:

  • ColorModes.Bitmap
  • ColorModes.Grayscale
  • ColorModes.RGB

يمكن إضافة مصادر إضافية، مثل مصادر الصور المصغرة لـ PSD v4.0 و v5.0 والأعلى، أو شبكة المرشدين والمرشدين لـ PSD v4.0 وأعلى. ينشئ الكود أدناه ملف صورة من الصفر، يملأ البكسلات ويحفظه في شكل PSD بضغط RLE ووضع ألوان grayscale. يوضح مقتطف الكود أدناه كيفية تصدير الصورة إلى PSD.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Create a new image from scratch.
using (PsdImage image = new PsdImage(300, 300))
{
// Fill image data.
Graphics graphics = new Graphics(image);
graphics.Clear(Color.White);
var pen = new Pen(Color.Brown);
graphics.DrawRectangle(pen, image.Bounds);
// Create an instance of PsdOptions, Set it's various properties Save image to disk in PSD format
PsdOptions psdOptions = new PsdOptions();
psdOptions.ColorMode = ColorModes.Rgb;
psdOptions.CompressionMethod = CompressionMethod.Raw;
psdOptions.Version = 4;
image.Save(dataDir + "ExportImageToPSD_output.psd", psdOptions);
}

استيراد الصورة إلى طبقة PSD

يوضح هذا المقال استخدام Aspose.PSD لإضافة أو استيراد صورة إلى طبقة PSD. تسمح واجهات برمجة التطبيقات في Aspose.PSD باستخدام طرق فعالة وسهلة الاستخدام لتحقيق هذا الهدف. قام Aspose.PSD بفتح طرق الأداء الخاصة بطبقة Layer لإضافة/استيراد صورة في ملف PSD. تحتاج طريقة DrawImage للفئة Layer إلى مواقع وقيم صورة لإضافة/استيراد صورة في ملف PSD. الخطوات لاستيراد صورة إلى طبقة PSD بسيطة كما يلي:

  • قم بتحميل ملف PSD كصورة باستخدام الطريقة المصنعة Load المكشوفة من قبل فئة Image.
  • إنشاء مثيل لفئة Layer من التيار مع Png ، Jpeg ، Tiff ، Gif ، Bmp ، Psd أو j2k file
  • إضافة Layer to Psd باستخدام طريقة AddLayer
  • حفظ النتائج.

يوضح مقتطف الكود أدناه كيفية استيراد الصورة إلى طبقة PSD.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outputFilePath = dataDir + "PsdResult.psd";
var filesList = new string[]
{
"PsdExample.psd",
"BmpExample.bmp",
"GifExample.gif",
"Jpeg2000Example.jpf",
"JpegExample.jpg",
"PngExample.png",
"TiffExample.tif",
};
using (var image = new PsdImage(200, 200))
{
foreach (var fileName in filesList)
{
string filePath = dataDir + fileName;
using (var stream = new FileStream(filePath, FileMode.Open))
{
Layer layer = null;
try
{
layer = new Layer(stream);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw e;
}
}
}
image.Save(outputFilePath);
}

استبدال الألوان في طبقات PSD

يوضح هذا المقال الاستخدام الرائع لـ Aspose.PSD لإضافة أو استيراد صورة إلى طبقة PSD. قامت واجهات برمجة التطبيقات في Aspose.PSD بتعريض طرق فعالة وسهلة الاستخدام لتحقيق هذا الهدف. لقد قام Aspose.PSD بتعريض طريقة DrawImage من فئة Layer لإضافة/استيراد صورة إلى ملف PSD. تحتاج طريقة DrawImage إلى تحديد موقع قيم الصورة لإضافة/استيراد صورة إلى ملف PSD. الخطوات لاستيراد صورة إلى طبقة PSD بسيطة كما يلي:

  • تحميل ملف PSD كصورة باستخدام الطريقة المصنعة Load المكشوفة من قبل فئة Image.
  • إنشاء مثيل لفئة Layer وتعيين طبقة صورة PSD لها.
  • تحميل الصورة التي يجب إضافتها أو إنشاء واحدة من البداية.
  • استدعاء طريقة Layer.DrawImage مع تحديد الموقع ومثيل الصورة.
  • حفظ النتائج.

يوضح مقتطف الكود أدناه كيفية استيراد الصورة إلى طبقة PSD.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and caste it into PsdImage
using (PsdImage image = (PsdImage)Image.Load(dataDir + "sample.psd"))
{
foreach (var layer in image.Layers)
{
if (layer.Name == "Rectangle 1")
{
layer.HasBackgroundColor = true;
layer.BackgroundColor = Color.Orange;
}
}
image.Save(dataDir + "asposeImage02.psd");
}

إنشاء المصغرات من ملفات PSD

يعتبر PSD هو التنسيق الوثيق الأصلي لتطبيق Photoshop التابع لشركة Adobe. يقوم Adobe Photoshop (الإصدار 5.0 وما بعده) بتخزين معلومات المصغرة لعرض المعاينة في كتلة موارد الصورة التي تتكون من رأس بدءي بـ 28 بايتًا، تليها مصغرة JFIF بترتيب RGB (أحمر، أخضر، أزرق). يوفر Aspose.PSD API آلية سهلة الاستخدام للوصول إلى موارد ملف PSD. تتضمن هذه الموارد أيضًا مورد المصغرة الذي بدوره يمكن الحصول عليه وحفظه على القرص حسب احتياجات التطبيق. يوضح مقتطف الكود أدناه كيفية إنشاء المصغرات من ملفات PSD.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and caste it into PsdImage
using (PsdImage image = (PsdImage)Image.Load(dataDir + "sample.psd"))
{
int index = 0;
// Iterate over the PSD resources
foreach (var resource in image.ImageResources)
{
index++;
// Check if the resource is of thumbnail type
if (resource is ThumbnailResource)
{
// Retrieve the ThumbnailResource and Check the format of the ThumbnailResource
var thumbnail = (ThumbnailResource)resource;
if (thumbnail.Format == ThumbnailFormat.KJpegRgb)
{
// Create a new image by specifying the width and height, Store the pixels of thumbnail on to the newly created image and save image
PsdImage thumnailImage = new PsdImage(thumbnail.Width, thumbnail.Height);
thumnailImage.SavePixels(thumnailImage.Bounds, thumbnail.ThumbnailData);
thumnailImage.Save(dataDir + "CreateThumbnailsFromPSDFiles_out_" + index.ToString() + ".bmp", new BmpOptions());
}
}
}
}

إنشاء ملفات PSD المؤشرة

يمكن لواجهة برمجة التطبيقات Aspose.PSD for .NET إنشاء ملفات PSD المؤشرة من البداية. يوضح هذا المقال استخدام PsdOptions وPsdImage لإنشاء ملف PSD مؤشرة أثناء رسم بعض الأشكال على قماش الذي تم إنشاؤه حديثًا. المراحل البسيطة التالية مطلوبة لإنشاء ملف PSD مؤشرة.

  • إنشاء مثيل من PsdOptions وتعيين مصدره.
  • ضبط خاصية ColorMode في PsdOptions إلى ColorModes.Indexed.
  • إنشاء لوحة جديدة من الألوان من فضاء RGB وتعيينه كخاصية Palette لـ PsdOptions.
  • ضبط خاصية CompressionMethod إلى خوارزمية الضغط المطلوبة.
  • إنشاء صورة PSD جديدة باستدعاء طريقة PsdImage.Create.
  • رسم الرسومات أو أداء العمليات الأخرى حسب الحاجة.
  • استدعاء طريقة PsdImage.Save لتنفيذ جميع التغييرات.

يوضح مقتطف الكود أدناه كيفية إنشاء ملفات PSD المؤشرة.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Create an instance of PsdOptions and set it's properties
var createOptions = new PsdOptions();
createOptions.Source = new FileCreateSource(dataDir + "Newsample_out.psd", false);
createOptions.ColorMode = ColorModes.Indexed;
createOptions.Version = 5;
// Create a new color palette having RGB colors, Set Palette property & compression method
Color[] palette = { Color.Red, Color.Green, Color.Blue, Color.Yellow };
createOptions.Palette = new PsdColorPalette(palette);
createOptions.CompressionMethod = CompressionMethod.RLE;
// Create a new PSD with PsdOptions created previously
using (var psd = Image.Create(createOptions, 500, 500))
{
// Draw some graphics over the newly created PSD
var graphics = new Graphics(psd);
graphics.Clear(Color.White);
graphics.DrawEllipse(new Pen(Color.Red, 6), new Rectangle(0, 0, 400, 400));
psd.Save();
}

تصدير طبقة PSD إلى صورة منخفضة الدقة

يسمح Aspose.PSD for .NET بتصدير الطبقات في ملف PSD إلى صور نقطية. يرجى استخدام طريقة Aspose.PSD.FileFormats.Psd.Layers.Layer.Save لتصدير الطبقة إلى الصورة. يقوم الكود المصدر التالي بتحميل ملف PSD وتصدير كل طبقاته إلى صورة PNG باستخدام طريقة Aspose.PSD.FileFormats.Psd.Layers.Layer.Save. بمجرد تصدير جميع الطبقات إلى صور PNG، يمكنك فتحها باستخدام برنامج عرض الصور المفضل لديك. يوضح مقتطف الكود أدناه كيفية تصدير طبقة PSD إلى صورة نقطية.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and caste it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "sample.psd"))
{
// Create an instance of PngOptions class
var pngOptions = new PngOptions();
pngOptions.ColorType = PngColorType.TruecolorWithAlpha;
// Loop through the list of layers
for (int i = 0; i < psdImage.Layers.Length; i++)
{
// Convert and save the layer to PNG file format.
psdImage.Layers[i].Save(string.Format("layer_out{0}.png", i + 1), pngOptions);
}
}

تحديث طبقة النص في ملف PSD

يسمح Aspose.PSD for .NET بتعديل النص في طبقة النص في ملف PSD. يُرجى استخدام فئة Aspose.PSD.FileFormats.Psd.Layers.TextLayer لتحديث النص في طبقة PSD. يوضح مقتطف الكود التالي كيفية تحميل ملف PSD، والوصول إلى طبقة النص، تحديث النص وحفظ الملف PSD باسم جديد بواسطة طريقة Aspose.PSD.FileFormats.Psd.Layers.TextLayer.UpdateText.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd"))
{
foreach (var layer in psdImage.Layers)
{
if (layer is TextLayer)
{
TextLayer textLayer = layer as TextLayer;
textLayer.UpdateText("test update", new Point(0, 0), 15.0f, Color.Purple);
}
}
psdImage.Save(dataDir + "UpdateTextLayerInPSDFile_out.psd");
}

اكتشاف PSD المسطحة

يسمح Aspose.PSD for .NET بكشف ما إذا كان ملف PSD معين مسطحًا أو لا. تم إدخال خاصية IsFlatten في فئة Aspose.PSD.FileFormats.Psd.PsdImage لتحقيق هذه الوظيفة. يوضح مقتطف الكود التالي كيفية تحميل ملف PSD والوصول إلى الخاصية IsFlatten.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd"))
{
// Do processing, Get the true value if PSD is flatten and false in case the PSD is not flatten.
Console.WriteLine(psdImage.IsFlatten);
}

دمج طبقات PSD

يوضح هذا المقال كيفية دمج الطبقات في ملف PSD أثناء تحويل ملف PSD إلى JPG باستخدام Aspose.PSD. في المثال أدناه، يتم تحميل ملف PSD موجود عن طريق تمرير مسار الملف إلى الطريقة الستاتيكية Load من فئة Image. بمجرد تحميله، يتم تحويل / صب الصورة إلى PsdImage. انشئ مثيل لفئة JpegOptions وضع العديد من خصائصه. الآن ادعو طريقة Save لمثيل PsdImage. يوضح مقتطف الكود الت