在C#中生成.bmp图像

时间:2014-02-01 18:55:49

标签: c# arrays bitmap 2d bmp

我想生成一个二维像素数组,然后将其保存在.bmp文件中。我读过关于位图的内容,但我不完全了解如何将Integer的2D数组转换为位图图像

这就是我已经找到并尝试制作的内容

        // Create array of integers
        int width = 1024;
        int height = 768;
        int[] integers = new int[width * height];

        // Fill array with random values
        Random random = new Random();
        for (int i = 0; i < integers.Length; ++i)
        {
            integers[i] = random.Next(Int32.MaxValue);
        }

        // Copy into bitmap
        Bitmap bitmap;
        unsafe
        {
            fixed (int* intPtr = &integers[0])
            {

            bitmap = new Bitmap(width, height, width, PixelFormat.Format32bppRgb, new IntPtr(&integers[0]));
            }
        }

但是我仍然不理解这部分

        // Copy into bitmap
        Bitmap bitmap;
        unsafe
        {
            fixed (int* intPtr = &integers[0])
            {

            bitmap = new Bitmap(width, height, width, PixelFormat.Format32bppRgb, new IntPtr(&integers[0]));
            }
        }
  1. 编译器说找不到类型或命名空间名称“Bitmap”(您是否缺少using指令或程序集引用?)
  2. 如何将其放入bmp文件?

1 个答案:

答案 0 :(得分:1)

好老编译器......你试过他的建议吗?

在文件顶部添加此行:

using System.Drawing.Bitmap;

如果您想要更多:请查看msdn

顺便说一句,您可以右键单击Bitmap并选择Resolve来执行此操作。这是一种简单的方法。

要将图像保存到文件中,可以使用不同的方法。这取决于你是哪个平台。我认为您应该查看WriteableImageExherehere