将动画.gif文件转换为.bmp条带

Spa*_*ple 0 c# gif animated-gif bmp

我想知道是否有人可以指导我或指导我使用.gif图像并将其转换为.bmp条形图像文件.

use*_*322 5

首先,你需要获得gif的大小.然后你需要找出有多少帧.

之后,您需要创建一个高度=原始高度和宽度=帧*Gif宽度的新图像.

然后你必须将原始Gif的帧粘贴到条带中,如下所示:帧N从像素N*宽度开始.

那就是你要做一个水平条带.


这是控制台应用程序的完整代码:

using System.Drawing;
using System.Drawing.Imaging;

foreach (var arg in args)
    {
        Image gif = Image.FromFile(arg);
        FrameDimension dim = new FrameDimension(gif.FrameDimensionsList[0]);
        int frames = gif.GetFrameCount(dim);

        Bitmap resultingImage = new Bitmap(gif.Width * frames, gif.Height);

        for (int i = 0; i < frames; i++)
        {
            gif.SelectActiveFrame(dim, i);

            Rectangle destRegion = new Rectangle(gif.Width * i, 0, gif.Width, gif.Height);
            Rectangle srcRegion = new Rectangle(0, 0, gif.Width, gif.Height);

            using (Graphics grD = Graphics.FromImage(resultingImage))
            {
                grD.DrawImage(gif, destRegion, srcRegion, GraphicsUnit.Pixel);
            }
        }

        resultingImage.Save("res.png", ImageFormat.Png);
    }
Run Code Online (Sandbox Code Playgroud)

生成的图像保存在名称下编译的控制台应用程序二进制文件目录中res.png.您可以使应用程序将生成的图像保存在源文件所在的位置,询问是否制作水平或垂直条带等.