0

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

4

4 回答 4

6

首先,您需要获取 gif 的大小。然后你需要找出有多少帧。

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

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

也就是说,如果您正在制作水平条。


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

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。您可以让应用程序将生成的图像保存在源文件所在的位置,询问是否制作水平或垂直条带等。

于 2012-12-13T11:08:30.837 回答
3

使用 Photoshop 可以轻松制作图像条(您可以获得免费试用版或 Elements)

  1. 打开 .gif - Photoshop 会将每一帧作为一个图层打开
  2. 将画布大小调整为(gif * 层的高度)像素
  3. 删除所有帧信息,保留图层
  4. 选择最后一层,并将其移动到最底部
  5. 选择所有图层并单击“分布垂直中心”。现在你有一个完美排列的条带。

如果您使用的是 Photoshop,则可以只导出为 BMP。而已。

于 2012-12-22T09:33:23.547 回答
2

肯定有效的方法是:

  1. 下载安装 Easy GIF Animator
  2. 用它打开游览 gif 并将帧导出到单独的文件
  3. 下载并安装任何可以创建图层的程序(例如 Photoshop CS3 Little)
  4. 创建一个新的文件宽度作为您的图片;高度 = 您照片的高度。X张图片
  5. 复制每张照片。作为一个图层到你的新文件中并一个接一个地移动它们。
  6. 将其保存为 .png 文件
  7. 下载安装 iPAQ 31x Image Explorer
  8. 在其中打开您的 .png
  9. 将其保存为 RGB 文件(普通 BMP 可能不起作用)
  10. 完毕!!

也许这不是最简单的方法,但它提供了精确编辑的可能性,并允许您制作透明背景上的图标条(但不限于图标)

于 2012-12-13T10:37:51.473 回答
-1

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

于 2012-04-04T15:38:57.050 回答