建议两种方法你可以试一下,
1、确定图像大小,setpixel逐点设置;
2、lockbits,指针操作(http://blog.sina.com.cn/s/blog_4e3e2ce4010009on.html)

解决方案 »

  1.   


    // 指定宽和高
    int width = 500, height = 500;// 8bit索引方式位图,设置灰度调色板
    var fmt = PixelFormat.Format8bppIndexed;
    var bmp = new Bitmap(width, height, fmt);
    var palette = bmp.Palette;
    for (var i = 0; i < 256; i++)
        palette.Entries[i] = Color.FromArgb(i, i, i);
    bmp.Palette = palette;// 使用ptr指针指向的数据构造位图
    var d = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly | ImageLockMode.UserInputBuffer, fmt, 
        new BitmapData { PixelFormat = fmt, Height = height, Width = width, Stride = width, Scan0 = ptr });
    bmp.UnlockBits(d);// 保存
    bmp.Save("e:\\x.png");