首页新闻找找看学习计划

如何使用c#改变图片的颜色

0
悬赏园豆:100 [已解决问题] 解决于 2016-10-21 13:48

图片只有白色背景和黑色线条,我想加深黑色部分颜色,在不影响背景颜色的情况如何使用c#改变图片的颜色下

大脚拖鞋的主页 大脚拖鞋 | 初学一级 | 园豆:80
提问于:2016-10-09 23:51
< >
分享
最佳答案
0

可以将图片放入控件,设置System.Drawing.Color;

收获园豆:100
寻求帮助的编程小白 | 初学一级 |园豆:36 | 2016-10-10 09:06

图片也只有BackColor的属性,这里不能改变背景颜色的,只是加深黑色线条的颜色   

大脚拖鞋 | 园豆:80 (初学一级) | 2016-10-10 12:50
其他回答(3)
0
            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)就可以了。

ensleep | 园豆:1391 (小虾三级) | 2016-10-10 13:24

思路学习了,感谢 不过代码好像不能正常编译诶   也是用SetPixel遍历像素解决的  谢谢你提供的思路

支持(0) 反对(0) 大脚拖鞋 | 园豆:80 (初学一级) | 2016-10-21 13:46
0

你需要研究一下gdi

刘宏玺 | 园豆:14004 (专家六级) | 2016-10-10 13:47

是呀 不过时间比较紧  有点赶鸭子上架   问题解决了  谢谢

支持(0) 反对(0) 大脚拖鞋 | 园豆:80 (初学一级) | 2016-10-21 13:47
0

核心类:System.Drawing :Bitmap(or Image),Graphics,然后通过读点判断几个分量是否不是白色范围,如果是那么将该值调整为你所需色值即可。

花飘水流兮 | 园豆:10568 (专家六级) | 2016-10-21 13:41

多谢抽时间回答,问题已经解决了

支持(0) 反对(0) 大脚拖鞋 | 园豆:80 (初学一级) | 2016-10-21 13:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册