wac*_*ock 6 c# arrays byte bitmap
我目前遇到以下问题:我想转换来自具有以下配置的文件的字节数组:
Byte1: R color of pixel 0,0.
Byte2: G color of pixel 0,0.
Byte3: B color of pixel 0,0.
Byte4: R color of pixel 0,1.
...
ByteN: R color of pixel n,n.
Run Code Online (Sandbox Code Playgroud)
所以我想做的是将这些字节转换为位图,而不必逐像素设置,bitmap.setPixel因为它需要太长时间.
有什么建议?提前致谢!
vcs*_*nes 11
如果您有byte[]像素,宽度和高度,那么您可以使用BitmapData将字节写入位图,因为您也知道格式.这是一个例子:
//Your actual bytes
byte[] bytes = {255, 0, 0, 0, 0, 255};
var width = 2;
var height = 1;
//Make sure to clean up resources
var bitmap = new Bitmap(width, height);
var data = bitmap.LockBits(new Rectangle(Point.Empty, bitmap.Size), ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);
Marshal.Copy(bytes, 0, data.Scan0, bytes.Length);
bitmap.UnlockBits(data);
Run Code Online (Sandbox Code Playgroud)
这是一个非常快速的操作.
您至少需要在C#文件的顶部导入这三个命名空间:
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6526 次 |
| 最近记录: |