使用asp.net改变图片颜色如灰色的变成彩色

 更新时间:2014年09月12日 15:48:27   投稿:whsnow   我要评论
在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,下面是经过测试可行的解决方案

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

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

#region 改变图片颜色 
/// <summary> 
/// 改变图片的颜色 
/// </summary> 
/// <param name="filePath">图片的完整路径</param> 
/// <param name="colorIndex">改变的颜色,true为灰色,false为彩色</param> 
public void update_pixelColor(string filePath, bool colorIndex) 
{ 
Bitmap bmp = new Bitmap(Bitmap.FromFile(filePath)); 
int value = 0; 
for (int i = 0; i < bmp.Height; i++) 
{ 
for (int j = 0; j < bmp.Width; j++) 
{ 
if (colorIndex) 
value = this.GetGrayNumColor(bmp.GetPixel(j, i)); 
else 
value = this.GetHongNumColor(bmp.GetPixel(j, i)); 
bmp.SetPixel(j, i, Color.FromArgb(value, value, value)); 
} 
} 
bmp.Save(filePath); 
} 
/// <summary> 
/// 获取彩色单点像素 
/// </summary> 
/// <param name="posClr">单点像素</param> 
/// <returns>int</returns> 
private int GetHongNumColor(Color posClr) 
{ 
return (posClr.R * 19595 + posClr.G * 38469 + posClr.B * 7472) >> 16; 
} 
/// <summary> 
/// 获取灰色单点像素 
/// </summary> 
/// <param name="posClr">单点像素</param> 
/// <returns>Color</returns> 
private int GetGrayNumColor(Color posClr) 
{ 
//要改变ARGB 
return (posClr.R * 19595 + posClr.G * 38469 + posClr.B * 7472) >> 16; 
} 
#endregion 改变图片颜色 

相关文章

  • .net 中按.(点)无法智能提示的bug解决方案

    .net 中按.(点)无法智能提示的bug解决方案

    IDE按.无法智能提示,但是可以编译并正常使用,在修改别人代码bug时遇到的,接下来为你提供详细解决方法,感兴趣的你可以参考下哈
    2013-03-03
  • Asp.Net使用服务器控件Image/ImageButton显示本地图片的方法

    Asp.Net使用服务器控件Image/ImageButton显示本地图片的方法

    Image/ImageButton服务器控件显示本地的图片,实现思路是金沙国际官网中存放了图片的相对地址,读取金沙国际官网中的地址,用控件加载显示图片。具体实现步骤大家参考下本文
    2017-08-08
  • asp.net操作ini文件示例

    asp.net操作ini文件示例

    这篇文章主要介绍了asp.net 操作INI文件的读写,读写操作本地ini配置文件的方法,需要的朋友可以参考下
    2014-02-02
  • Discuz .net版本中的短消息系统

    Discuz .net版本中的短消息系统

    Discuz .net 短消息实现原理。
    2009-04-04
  • aspx不显示ViewState的实例

    aspx不显示ViewState的实例

    重写Render方法,来去掉ViewState,提高网站的性能
    2013-03-03
  • .net GridView分页模板的实例代码

    .net GridView分页模板的实例代码

    .net GridView分页模板的实例代码,对分页代码有兴趣的朋友可以参考一下
    2013-03-03
  • ASP.NE网站发布注意事项简析

    ASP.NE网站发布注意事项简析

    ASP.NET网站部署到IIS中的关键点,本文介绍了一些ASP.NE网站在发布是需要注意事项,需要了解的朋友可以参考下
    2012-12-12
  • ASP.NET(C#)中操作SQLite金沙国际官网实例

    ASP.NET(C#)中操作SQLite金沙国际官网实例

    最近项目中有使用到SQLite金沙国际官网,于是查找资料,编写了一个ASP.NET基于C#语言的SQLite金沙国际官网操作实例.大家看代码就可以看懂了,和以往使用ADO.NET操作SQL金沙国际官网类似.
    2009-12-12
  • 关于C# if语句中并列条件的执行

    关于C# if语句中并列条件的执行

    我们知道,当两个条件进行逻辑与操作的时候,其中任何一个条件为假,则表达式的结果为假。所以,遇到(A 且 B)这种表达式,如果A为假的话,B是不是真假都无所谓了,当遇到一个假条件的时候,程序也就没有必要去额外的判断剩下的东西了
    2012-02-02
  • ASP.NET Core静态文件的使用方法

    ASP.NET Core静态文件的使用方法

    这篇文章主要给大家介绍了关于ASP.NET Core静态文件的使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论