c#byte数组转换成图片

我深知我该努力了 2017-08-25 03:54:07
转换之后是这样

只有转换成8bit灰度的黑白照片才清楚,可是客户不要黑白的
怎么显示成彩色的
...全文
763 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
白衣如花 2017-08-28
  • 打赏
  • 举报
回复
原图就是黑白?或者图片数据有丢失
sheryee1 2017-08-28
  • 打赏
  • 举报
回复
要看转byte[]之前,是什么格式的,还原为之前的格式
我不会发光i 2017-08-28
  • 打赏
  • 举报
回复
/// <summary> /// 接受字符串并转换成图片 false为否,true为是 /// </summary> /// <param name="strData">传入的字符串</param> /// <param name="OFF">是否指示写入文件</param> private void SwitchJpg(string strData,bool OFF) { //这个变量会随着用户点击而改变,后期需要注意 //D:\Work\Setting\Setting\bin\Debug\RetrunImg\装置名称 string PathURL = ini.ReadValue("图片设置", "图片路径","")+"\\"+ ZZName; using (FileStream fsWrite = new FileStream(PathURL, FileMode.Append, FileAccess.Write)) { // 声明一个字节数组,长度为16进制字符串长度的一半: byte[] buf = new byte[strData.Length / 2]; for (int i = 0; i < buf.Length; i++) { // 由于16进制字符串都是两个一组,所以需要将两个字符一起转换成字节 buf[i] = Convert.ToByte(strData.Substring(i * 2, 2), 16); } } }
绿领巾童鞋 2017-08-28
  • 打赏
  • 举报
回复
明显 楼主 漏掉 了一些环节。 1. 你的byte 数组 是怎么来的,是网络设备摄像头采集的,还是本地文件?这个就没有说清楚。 2. 第一点确认没有问题后,就是转换的问题,其实你bing 搜索一下byte数组转image 或者bitmap ,代码并没有多大的复杂。 所以,我觉得你拿到手的byte数组的时候 就漏掉了一些细节,例如拿到的是图片的裸码,没有 文件头信息,这些都是你需要补充的。
wanghui0380 2017-08-28
  • 打赏
  • 举报
回复
这看原始的图像是什么,从你给的图上看,要么是高曝的,要么是特殊的非可见光图 如果你不知道原始图是什么,你可以先灰度图,然后在根据灰度图出“伪彩图”
xian_wwq 2017-08-28
  • 打赏
  • 举报
回复
先得搞清楚最初的图片怎么转的byte[], 肯定得有个规则吧
一品梅 2017-08-28
  • 打赏
  • 举报
回复
可能格式和原格式不匹配。
BitmapData bmpdata = bmp.LockBits(
   new Rectangle(0, 0, bmp.Width, bmp.Height),
   ImageLockMode.ReadOnly, bmp.PixelFormat
);

int numbytes = bmpdata.Stride * bmp.Height;
byte[] bytedata = new byte[numbytes];
Marshal.Copy(bmpdata.Scan0, bytedata, 0, numbytes);
bmp.UnlockBits(bmpdata);
  • 打赏
  • 举报
回复
原图是啥样的?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧