C#读取图片文件像素发生变化

weixin_44591510 2021-02-22 04:20:17
读取图片代码如下:

Image img = Image.FromFile(imgPath);

int width = img.Width;
int height = img.Height;

MemoryStream ms = new MemoryStream();

if (img.RawFormat.Guid == System.Drawing.Imaging.ImageFormat.Bmp.Guid)
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);

byte[] fileBytes = ms.ToArray();

原图和读取后的图片如下:


图中,上面的1.bmp是读取出来的效果
下面的barcode.bmp是原始图片
很明显,1.bmp中的一些像素变成了灰色,
请问如果解决?


...全文
327 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44591510 2021-02-25
  • 打赏
  • 举报
回复
引用 7 楼 yunlight 的回复:
[quote=引用 5 楼 weixin_44591510 的回复:][quote=引用 4 楼 yunlight 的回复:]透明度的问题和Alpha量有关,第一张图只有RGB,第二张的原图就有RGBA
怎么在读图的时候保留A?[/quote] 和图片文件的格式有关,jpg格式没有Alpha,bmp格式才有,用Bitmap读取图片看看[/quote] 用bitmap读取出来的也没有A
Carlven2012 2021-02-23
  • 打赏
  • 举报
回复
我之前好像遇到过这问题,变灰是绘制模式进行了抗锯齿处理! 你把绘制那个SmoothingMode改成不要抗锯齿。
desperaso 2021-02-23
  • 打赏
  • 举报
回复
转base64再转图像就好了
看:https://bbs.csdn.net/topics/392302761
yunlight 2021-02-23
  • 打赏
  • 举报
回复
引用 5 楼 weixin_44591510 的回复:
[quote=引用 4 楼 yunlight 的回复:]透明度的问题和Alpha量有关,第一张图只有RGB,第二张的原图就有RGBA
怎么在读图的时候保留A?[/quote] 和图片文件的格式有关,jpg格式没有Alpha,bmp格式才有,用Bitmap读取图片看看
Carlven2012 2021-02-23
  • 打赏
  • 举报
回复
绘制出来的图片,放大看就类似这样。
weixin_44591510 2021-02-23
  • 打赏
  • 举报
回复
引用 4 楼 yunlight 的回复:
透明度的问题和Alpha量有关,第一张图只有RGB,第二张的原图就有RGBA
怎么在读图的时候保留A?
yunlight 2021-02-23
  • 打赏
  • 举报
回复
透明度的问题和Alpha量有关,第一张图只有RGB,第二张的原图就有RGBA
weixin_44591510 2021-02-23
  • 打赏
  • 举报
回复
我把两张图拼在一起了,便于比较,你仔细看,下面的只有黑白的图片就是原图。
橘子皮... 2021-02-23
  • 打赏
  • 举报
回复
你把原始图片发上来啊

111,094

社区成员

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

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

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