مع Aspose.PSD لـ .NET ، يمكنك تحويل PSD إلى GIF ثابت في مكالمة واحدة ، وعندما يحتوي PSD على خط زمني للرسوم المتحركة ، يمكنك تصدير GIF متحرك** مباشرة من تلك الخط الزمني.
هذه المقالة تظهر كلا السيناريوهات مع كامل، في خط الرمز.
المتطلبات
- .NET 6 أو أحدث (أو إطار .Net 4.6.2+)
- الحزمة الجديدة :
Aspose.PSD
dotnet add package Aspose.PSD
تحويل PSD إلى GIF ثابت
استخدام Image.Load
من أجل فتح حزب العمال الكردستاني، أطلقت PsdImage
ثم ينقذ مع GifOptions
هذا يجمع PSD في GIF واحد الإطار.
// File: Program.cs
using System;
using System.IO;
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.ImageOptions;
class Program
{
static void Main()
{
var inputPsd = "input.psd";
var outputGif = "output-static.gif";
if (!File.Exists(inputPsd))
{
Console.WriteLine("Input PSD not found.");
return;
}
using (var psd = (PsdImage)Image.Load(inputPsd))
{
// Export as a single-frame GIF
var gifOptions = new GifOptions();
psd.Save(outputGif, gifOptions);
}
Console.WriteLine("Saved: " + Path.GetFullPath(outputGif));
}
}
ملاحظات
- لا يتطلب التصدير الثابت خط زمني في PSD.
- يتم إنشاء لوحة GIF تلقائيًا.إذا كنت بحاجة إلى حجم أو مظهر ملف مختلف ، فعليك تحسين عمل المصدر (مسطح ، تبسيط الألوان) قبل التصدير.
تحويل PSD القائم على الخط الزمني إلى GIF الرسوم المتحركة
إذا كان PSD الخاص بك يحتوي على خط زمني للرسوم المتحركة ، فيمكنك تصديره كGIF متحرك باستخدام API الزمني.
// File: Program.cs
using System;
using System.IO;
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.ImageOptions;
class Program
{
static void Main()
{
var inputPsd = "animated.psd";
var outputAgif = "output-animated.gif";
if (!File.Exists(inputPsd))
{
Console.WriteLine("Input PSD not found.");
return;
}
using (var psd = (PsdImage)Image.Load(inputPsd))
{
if (psd.Timeline != null)
{
// Export PSD timeline as animated GIF
var gifOptions = new GifOptions();
psd.Timeline.Save(outputAgif, gifOptions);
Console.WriteLine("Saved animated GIF: " + Path.GetFullPath(outputAgif));
}
else
{
// Fallback to static export if the PSD has no timeline
var gifOptions = new GifOptions();
psd.Save(outputAgif, gifOptions);
Console.WriteLine("PSD has no timeline. Saved static GIF: " + Path.GetFullPath(outputAgif));
}
}
}
}
ملاحظات
- هذا المسار يحترم ترتيب الإطار والتأخير حسب الإطارات المحددة في خط زمني PSD.
- إذا لم يكن لدى PSD بيانات الخطوط الزمنية ، فإن الرمز يعود إلى GIF واحد الإطار.
اختياري باتش التحويل
يستخدم الوسائط التالية لتحويل كل PSD في مجلد إلى GIF. يتم تصدير PSDs الرسوم المتحركة عبر الخط الزمني عند توافرها، والبعض الآخر يصدر كGIF ثابت.
// File: BatchPsdToGif.cs
using System;
using System.IO;
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.ImageOptions;
public static class BatchPsdToGif
{
public static void Run(string inputDir, string outputDir)
{
Directory.CreateDirectory(outputDir);
var psdFiles = Directory.GetFiles(inputDir, "*.psd", SearchOption.AllDirectories);
foreach (var psdPath in psdFiles)
{
var rel = Path.GetRelativePath(inputDir, psdPath);
var outFn = Path.ChangeExtension(rel, ".gif");
var outFp = Path.Combine(outputDir, outFn);
Directory.CreateDirectory(Path.GetDirectoryName(outFp) ?? outputDir);
try
{
using var psd = (PsdImage)Image.Load(psdPath);
var gifOptions = new GifOptions();
if (psd.Timeline != null)
{
psd.Timeline.Save(outFp, gifOptions);
}
else
{
psd.Save(outFp, gifOptions);
}
Console.WriteLine($"OK {rel} -> {outFn}");
}
catch (Exception ex)
{
Console.WriteLine($"ERR {rel}: {ex.Message}");
}
}
}
}
اتصل بنا من Main
:
// inside Main
// BatchPsdToGif.Run(@"C:\in-psd", @"C:\out-gif");
أفضل الممارسات
- محدودات الألوان: يستخدم GIF لوحة مؤشر تصل إلى 256 لونًا لكل إطار.لأعمال فنية معقدة، فكر في تبسيط الطبقات أو اللون في PSD للحصول على ملفات أفضل وأصغر.
- الشفافية: GIF يدعم الشفافية 1 بت.إذا كنت بحاجة إلى ألفا كاملة، استخدم PNG للصور الثابتة و APNG للتصوير الفوتوغرافي في بيئات متوافقة.
- حجم الملف: يمكن أن تكون GIFs الرسوم المتحركة كبيرة.تخفيض عدد الإطارات، وحجم الإطار، أو تفاصيل الأعمال الفنية للحفاظ على الحجم عمليا.
- التحقق: تحقق دائمًا من النتيجة المسبقة في البيئات المستهدفة لتأكيد التوقيت والتدفق والسلوك.
مع هذه النماذج، يمكنك تلقائي كل من PSD الثابتة والرسوم المتحركة إلى تصدير GIF داخل سير العمل .NET الخاص بك.