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

时间:2012-04-04 14:50:12

标签: c# gif animated-gif bmp

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

4 个答案:

答案 0 :(得分: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);
    }

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

答案 1 :(得分:3)

使用Photoshop可以轻松完成图像条带(您可以获得免费试用版或元素)

  1. 打开.gif文件 - Photoshop会将每个框架打开为图层
  2. 将画布调整为(gif *图层的高度)像素
  3. 删除所有框架信息,保留图层
  4. 选择最后一层,并将其移至最底层
  5. 选择所有图层,然后点击“分发垂直中心”。现在你有一个完美排列的条带。
  6. 如果您使用的是Photoshop,则可以将其导出为BMP。多数民众赞成。

答案 2 :(得分:2)

可行的方法是:

  1. 下载安装Easy GIF Animator
  2. 用它打开tour gif并将帧导出到单独的文件
  3. 下载并安装任何可以创建图层的程序(例如Photoshop CS3 Little)
  4. 创建一个新的文件宽度作为您的图片;高度=你的照片的高度。 X张图片
  5. 复制每张照片。作为新文件的图层并逐个移动它们。
  6. 将其另存为.png文件
  7. 下载安装iPAQ 31x Image Explorer
  8. 打开你的.png
  9. 将其另存为rGB文件(普通BMP可能无效)
  10. DONE !!
  11. 也许这不是最简单的方法,但它提供了精确编辑的可能性,并允许您制作透明背景上的图标条(但不限于图标)

答案 3 :(得分:-1)

只需在Bitmap中加载.gif并将其保存在.bmp中。如果你想导出.gif的帧我不知道怎么做。你可以查看这个www.eggheadcafe.com/articles/stripimagefromanimatedgif.asp,它似乎就是你要找的东西。