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中的一些像素变成了灰色,
请问如果解决?


...全文
259 9 打赏 收藏 举报
写回复
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
我把两张图拼在一起了,便于比较,你仔细看,下面的只有黑白的图片就是原图。
  • 打赏
  • 举报
回复
橘子皮zzz 2021-02-23
你把原始图片发上来啊
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2021-02-22 04:20
社区公告

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