zoukankan      html  css  js  c++  java
  • C#图片处理(黑白背景以及字体的颜色转换)

    早上看到别人的一个需求,是有关图片处理的。顺手写了一下。。。

    其实就是简单的像素处理,白底黑字转换为黑底白字。

    int width = pictureBox1.Image.Width;//获取图片宽度
    int height = pictureBox1.Image.Height;//获取图片高度
    Bitmap newmap = new Bitmap(width, height);//保存新图片
    Bitmap oldmap = (Bitmap)this.pictureBox1.Image;//保存旧图片
    Color pixel;//颜色匹对
    for (int i = 0; i < width; i++)
    {
        for (int j = 0; j < height; j++)
        {
            pixel = oldmap.GetPixel(i, j);//获取旧图片的颜色值(ARGB存储方式)
            int r, g, b, a;
            r = pixel.R;
            g = pixel.G;
            b = pixel.B;
            a = pixel.A;
                
            //白色RGB(255,255,255),黑色(0,0,0)
        
            //判断是否属于白色背景
            if (r == 255 && g == 255 && b == 255)
            {
                //设置新图片中指定像素的颜色为黑色
                newmap.SetPixel(i, j, Color.FromArgb(0, 0, 0));
            }
            else if (r == 0 && g == 0 && b == 0)
            {   //设置新图片中指定像素的颜色为白色
                newmap.SetPixel(i, j, Color.FromArgb(255, 255, 255));
            }
            else
            { 
                newmap.SetPixel(i, j, Color.FromArgb(255 - r, 255 - g, 255 - b));
            }
        }
    }
        
    pictureBox1.Image = newmap;

    本文从百度空间搬家到博客园。。

    邮箱:yunanwu@foxmail.com 微博:@提灯寻影(http://weibo.com/wuyunnan) 技术主页:http://www.cnblogs.com/yuanawu/ 可以白手起家不可手无寸铁!我是我命运的主宰者,我是我灵魂的掌舵人! 每一次的选择都将是一个挑战!
  • 相关阅读:
    SpringBoot异步处理请求
    5本最佳的 Java 面向对象理论和设计模式的书籍
    彻底弄懂 HTTP 缓存机制 —— 基于缓存策略三要素分解法
    Java 性能优化的五大技巧
    Java 8 最佳技巧
    Java 并发的四种风味:Thread、Executor、ForkJoin 和 Actor
    在 Java 8 中避免 Null 检查
    关于创建java线程池问题的思考
    LuoguP1858 多人背包(DP)
    Luogu[YNOI2019]排序(DP,线段树)
  • 原文地址:https://www.cnblogs.com/yunanwu/p/4168578.html
Copyright © 2011-2022 走看看