كيفية تغيير حجم صورة GIF المتحركة باستخدام C #؟

StackOverflow https://stackoverflow.com/questions/539034

  •  22-08-2019
  •  | 
  •  

سؤال

هل هناك طريقة لإنشاء نسخة من صورة GIF الرسوم المتحركة باستخدام C #؟

ما أريده هو توليد نسخة من صورة GIF معينة باستخدام معلمات الارتفاع والعرض الذي يوفره المستخدم. لقد حاولت لبضع ساعات لإنجاز هذا ولكن الصورة الناتجة لا تحافظ على الرسوم المتحركة الأصلية.

هل كانت مفيدة؟

المحلول

تحتاج إلى حلقة من خلال الإطارات في GIF المتحركة وتغيير حجم كل واحد.

قد ترغب أيضا في إلقاء نظرة على giflib..

نصائح أخرى

أخذني بعض الوقت للعثور على هذا، ولكن أخيرا وجدت حلا:

ثبت magick.net. عبر Nuget، يمكن العثور على الترخيص هنا:
https://magick.codeplex.com/license.

رمز المثال:

var newWidth = 100;
using (var collection = new MagickImageCollection(new FileInfo(@"C:\test.gif")))
{
    collection.Coalesce();
    foreach (var image in collection)
    {
        image.Resize(newWidth, 0);
    }
    collection.Write(@"c:\resized.gif");
}

من اختباراتي، يعمل هذا مع قنوات ألفا ومعدلات الإطارات المختلفة. يبدو أن تكون مثالية!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top