调整动画GIF图像大小的最佳方法是什么?

时间:2016-09-28 08:24:15

标签: c# image

在我的项目中,我需要帮助人们减少图像的大小。我已经创建了一个图像调整大小的方法,它适用于几乎图像格式,但没有动画GIF !!

因此,我希望有人帮助我做到这一点:)

我设计了如何调整动画GIF大小的过程:

  1. 以字节数据=>

  2. 获取图像
  3. 将GIF框架拆分为Image array =>

  4. 调整数组的每张图片的大小=>

  5. 将这些图像合并为一个GIF图像=>

  6. 将GIF图像转换为字节数据=>

  7. 将字节数据上传到云端

  8. 我不是在问这个代码是什么,但是问这是否可能?

    我的设计代码:

    static void Main(string[] args)
    {
       Image gifimage = getImageFromByte();  //created
       Image[] images = GetFramesFromAnimatedGIF(gifimage); //creating
       for (int i=0; i< images.Length;i++)
       {
           images[i] = resize(img, size); //created
       }
       Image combinedImg = combineImgArrToImg(images); // not create yet
       byte[] imgData = convertImgToData(combinedImg); // created
       uploadImg(imgData);  //created
    }
    

    关于GetFramesFromAnimatedGIF方法,它是:

     public static Image[] GetFramesFromAnimatedGIF(Image IMG)
     {
        List<Image> IMGs = new List<Image>();
        int Length = IMG.GetFrameCount(FrameDimension.Time);
    
        for (int i = 0; i < Length; i++)
        {
            IMG.SelectActiveFrame(FrameDimension.Time, i);
            IMGs.Add(new Bitmap(IMG));
        }
    
        return IMGs.ToArray();
    }
    

0 个答案:

没有答案