加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 字节数组或矩阵到BitMap

发布时间:2020-12-15 04:24:45 所属栏目:百科 来源:网络整理
导读:我目前遇到以下问题:我想转换来自具有以下配置的文件的字节数组: 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. 所以我想做的是将这些字节转换为位
我目前遇到以下问题:我想转换来自具有以下配置的文件的字节数组:
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.

所以我想做的是将这些字节转换为位图,而不必使用bitmap.setPixel逐像素设置,因为它需要太长时间.

有什么建议?提前致谢!

解决方法

如果你有像素的byte [],以及宽度和高度,那么你可以使用BitmapData将字节写入位图,因为你也知道格式.这是一个例子:
//Your actual bytes
byte[] bytes = {255,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,data.Scan0,bytes.Length);
bitmap.UnlockBits(data);

这是一个非常快速的操作.

您至少需要在C#文件的顶部导入这三个命名空间:

using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读