最近奇葩经理提出了奇葩的需求,要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,尼玛楼主的感受你们不懂!于是有了下面的代码。。。

用法:调用update_pixelColor方法并传参数即可

  1. #region 改变图片颜色
  2. /// <summary>
  3. /// 改变图片的颜色
  4. /// </summary>
  5. /// <param name="filePath">图片的完整路径</param>
  6. /// <param name="colorIndex">改变的颜色,true为灰色,false为彩色</param>
  7. public void update_pixelColor(string filePath, bool colorIndex)
  8. {
  9. Bitmap bmp = new Bitmap(Bitmap.FromFile(filePath));
  10. int value = 0;
  11. for (int i = 0; i < bmp.Height; i++)
  12. {
  13. for (int j = 0; j < bmp.Width; j++)
  14. {
  15. if (colorIndex)
  16. value = this.GetGrayNumColor(bmp.GetPixel(j, i));
  17. else
  18. value = this.GetHongNumColor(bmp.GetPixel(j, i));
  19. bmp.SetPixel(j, i, Color.FromArgb(value, value, value));
  20. }
  21. }
  22. bmp.Save(filePath);
  23. }
  24. /// <summary>
  25. /// 获取彩色单点像素
  26. /// </summary>
  27. /// <param name="posClr">单点像素</param>
  28. /// <returns>int</returns>
  29. private int GetHongNumColor(Color posClr)
  30. {
  31. return (posClr.R * 19595 + posClr.G * 38469 + posClr.B * 7472) >> 16;
  32. }
  33. /// <summary>
  34. /// 获取灰色单点像素
  35. /// </summary>
  36. /// <param name="posClr">单点像素</param>
  37. /// <returns>Color</returns>
  38. private int GetGrayNumColor(Color posClr)
  39. {
  40. //要改变ARGB
  41. return (posClr.R * 19595 + posClr.G * 38469 + posClr.B * 7472) >> 16;
  42. }
  43. #endregion 改变图片颜色

这个转换的比较慢 看到编程人生上有关于这方面的总结,哪天来研究一下

使用asp.net改变图片颜色的更多相关文章

  1. Android--ColorMatrix改变图片颜色

    前言 本篇博客讲解如何通过改变图片像素点RGB的值的方式,在Android中改变图片的颜色.在最后将以一个简单的Demo来作为演示. 本篇博客的主要内容: ColorMatrix 使用ColorMat ...

  2. Android 使用ColorMatrix改变图片颜色

    原文链接:http://blog.csdn.net/janice0529/article/details/49207939 ColorMatrix的颜色矩阵介绍 颜色矩阵M是一个5*4的矩阵,在And ...

  3. 利用CSS3 filter:drop-shadow实现纯CSS改变图片颜色

    体验更优排版请移步原文:http://blog.kwin.wang/programming/css3-filter-drop-shadow-change-color.html 之前做项目过程中有时候遇 ...

  4. Android改变图片颜色的自定义控件

    效果如下: 理解:Xfermode的16总模式如图 第一步: package com.rong.activity; import com.rong.test.R; import android.con ...

  5. Drawable 添加过滤色,改变图片颜色

    /** * 更改图片颜色 * @param drawable * @param color * @return */ public Drawable getDrawable(Drawable draw ...

  6. iOS开发笔记--使用blend改变图片颜色

    最近对Core Animation和Core Graphics的内容东西比较感兴趣,自己之前也在这块相对薄弱,趁此机会也想补习一下这块的内容,所以之后几篇可能都会是对CA和CG学习的记录的文章. 在应 ...

  7. PS_0001:改变图片颜色 填充颜色

    1,创建新图存  ctrl + j 2,点击前景色按钮,改变颜色 3,前景色的键盘快捷键是“Alt+Delete”,背景色的键盘快捷键是“Ctrl+Delete”

  8. Egret中图片颜色的改变,颜色矩阵

    参考: 图片处理:颜色矩阵和坐标变换矩阵 Egret-滤镜 之前面试有问到如何改变图片的颜色.貌似之前做Flash的时候做过,做Egret后没有此类需求,所以一直没有研究过. 现在来弄一弄如何改变图片 ...

  9. 改变图片的颜色,UIImage改变颜色

    定义 #import <UIKit/UIKit.h> @interface UIImage (ChangeImageColor) /** * 改变图片的颜色 * * @param tint ...

随机推荐

  1. purcell的emacs配置中的自动补全功能开启

    标记一下,原文参看purcell的emacs配置中的自动补全功能开启 修改init-auto-complete.el文件 ;;(setq-default ac-expand-on-auto-compl ...

  2. Storm元数据交互详解

    一.Nimbus Nimbus既需要在Zookeeper中创建元数据,也需要从Zookeeper中获取元数据. 如上图箭头1所示: 1.对于路径a,Nimbus只会创建路径,不会设置数据,数据是稍后由 ...

  3. Docker 技术 介绍

    https://github.com/docker/docker 实现用户空间隔离的技术:名称空间(NameSpace),CGroup(控制组) 什么是NameSpace::简单的理解就是,每一个虚拟 ...

  4. java.lang.NoClassDefFoundError: Lcom/opensymphony/xwork2/util/logging/Logger tomcat6 启动错误

    用tomcat6启动时,出现下面的错误Java.lang.NoClassDefFoundError: Lcom/opensymphony/xwork2/util/logging/Logger; Cau ...

  5. [转帖] 部分收费的Oracle JDK VS 完全免费的OpenJDK

    来源: http://www.flammulina.com/2018/10/28/%E9%83%A8%E5%88%86%E6%94%B6%E8%B4%B9%E7%9A%84oracle-jdk-vs- ...

  6. crontab笔记

    *  *  * * *     root    rm -f /var/spool/cron/lastrun/cron.hourly    > out.file   第一部分:执行的周期与时间   ...

  7. TDDL实践

    使用入门-数据源配置 数据源配置,tddl的入口,从datasource切入 <bean id="tddlDataSource" class="com.taobao ...

  8. 【Java】JDBCUtil模板

    package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; ...

  9. html/css/js 学习笔记 - 牛客网试卷:前端工程师能力评估

    display属性 : block : CSS1 块对象的默认值.将对象强制作为块对象呈递,为对象之后添加新行   可以定义高度和宽度 none : CSS1 隐藏对象.与 visibility 属性 ...

  10. Java操作excel(POI)

    由于在项目中使用了将excel数据导入到数据库.在这里分享一下. 这里使用的POI方式,支持两种格式(xls,xlsx) package com.entity; import java.io.File ...