·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 使用asp.net改变图片颜色

使用asp.net改变图片颜色

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

使用asp.net改变图片颜色

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

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

C#代码收藏代码
  1. #region改变图片颜色
  2. ///<summary>
  3. ///改变图片的颜色
  4. ///</summary>
  5. ///<paramname="filePath">图片的完整路径</param>
  6. ///<paramname="colorIndex">改变的颜色,true为灰色,false为彩色</param>
  7. publicvoidupdate_pixelColor(stringfilePath,boolcolorIndex)
  8. {
  9. Bitmapbmp=newBitmap(Bitmap.FromFile(filePath));
  10. intvalue=0;
  11. for(inti=0;i<bmp.Height;i++)
  12. {
  13. for(intj=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. ///<paramname="posClr">单点像素</param>
  28. ///<returns>int</returns>
  29. PRivateintGetHongNumColor(ColorposClr)
  30. {
  31. return(posClr.R*19595+posClr.G*38469+posClr.B*7472)>>16;
  32. }
  33. ///<summary>
  34. ///获取灰色单点像素
  35. ///</summary>
  36. ///<paramname="posClr">单点像素</param>
  37. ///<returns>Color</returns>
  38. privateintGetGrayNumColor(ColorposClr)
  39. {
  40. //要改变ARGB
  41. return(posClr.R*19595+posClr.G*38469+posClr.B*7472)>>16;
  42. }
  43. #endregion改变图片颜色

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