可以将图片放入控件,设置System.Drawing.Color;
图片也只有BackColor的属性,这里不能改变背景颜色的,只是加深黑色线条的颜色
using (Stream stream = File.OpenRead("old.bmp")) // 打开位图文件 { byte[] buffer = new byte[stream.Length - 54]; // 缓冲区,文件长度减去文件头和信息头的长度 stream.Position = 54; // 跳过文件头和信息头 stream.Read(buffer, 0, buffer.Length); // 读取位图数据,位图数据是颠倒的 stream.Position = 54; for (int a = 3; a < buffer.Length; a += 4) { if (buffer[a] != 255 || buffer[a+1] != 255 || buffer[a+1] != 255 || buffer[a+1] != 255) { stream.WriteByte(0); stream.WriteByte(0); stream.WriteByte(0); stream.WriteByte(0); }else { stream.WriteByte(255); stream.WriteByte(255); stream.WriteByte(255); stream.WriteByte(255); } } using (FileStream fs = new FileStream("newpic.bmp",FileMode.CreateNew)) { stream.Position = 0; stream.CopyTo(fs); } }
先读出流,然后前面54个字节是文件头,后面是图片的像素信息,每四个Byte是一个像素,只要四个有一个不是255,那么就不是纯白,把它变成全黑(0)就可以了。
思路学习了,感谢 不过代码好像不能正常编译诶 也是用SetPixel遍历像素解决的 谢谢你提供的思路
你需要研究一下gdi
是呀 不过时间比较紧 有点赶鸭子上架 问题解决了 谢谢
核心类:System.Drawing :Bitmap(or Image),Graphics,然后通过读点判断几个分量是否不是白色范围,如果是那么将该值调整为你所需色值即可。
多谢抽时间回答,问题已经解决了