使用asp.net改变网页上图片颜色比如灰色变彩色

 更新时间:2014年08月24日 15:29:35   投稿:whsnow  
要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色多好啊,下面是通过asp.net实现的,有需求的朋友可以参考下

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

用法:调用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 改变图片颜色

相关文章

  • php使用socket编程示例

    php使用socket编程示例

    这篇文章主要介绍了php使用socket编程的示例,大家参考使用吧
    2014-01-01
  • 通用 HTTP 签名组件的另类实现方式

    通用 HTTP 签名组件的另类实现方式

    这篇文章主要介绍了通用 HTTP 签名组件的另类实现方式,实现思路大概是采用链式调用的方式,使得签名的步骤可以动态拼凑组合,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • asp.net如何将DataSet转换成josn并输出

    asp.net如何将DataSet转换成josn并输出

    将DataSet转换成josn并输出,如果解析有问题可以把代码中的&quot;用"替换,需要的朋友可以参考下
    2014-08-08
  • .NET实现API版本控制

    .NET实现API版本控制

    这篇文章介绍了.NET实现API版本控制的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • asp.net中简体转繁体实现代码

    asp.net中简体转繁体实现代码

    最近到了台企,什么都要用繁体的。开发中也遇到了简繁体转换的问题。这里和朋友们分享一下用.net实现简繁体转换的经验。
    2010-03-03
  • ASP.NET 高性能分页代码

    ASP.NET 高性能分页代码

    ASP.NET 高性能分页代码...
    2007-01-01
  • 利用.net core实现反向代理中间件的方法

    利用.net core实现反向代理中间件的方法

    这篇文章主要给大家介绍了关于利用.net core实现反向代理中间件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • asp.net DataGrid 中文字符排序的实现代码

    asp.net DataGrid 中文字符排序的实现代码

    在论坛上看到有位朋友希望对中文按拼音进行排序,刚好最近有点空,贴一份原来一个同事写的一个排序类,仅稍微改动了下下,拿出来分享下.
    2009-09-09
  • asp.net 页面之间传递参数的几种方法

    asp.net 页面之间传递参数的几种方法

    因为在项目中需要在两个页面之间传递一些参数,所以总结出以下几个传递参数的方法
    2009-06-06
  • asp.net5中的用户认证与授权(1)

    asp.net5中的用户认证与授权(1)

    Visual Studio 2015 Preview 除了给我们带了了C# 6.0的新语法、跨移动的开发以外,还给我们带来了ASP.NET5(也就是之前被称作下一代ASP.NET的ASP.NET vNext)。本文给大家介绍asp.net5中的用户认证与授权(1),需要的朋友可以参考下
    2015-10-10

最新评论