使用asp.net改变图片颜色

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

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

C#代码  

  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改变图片颜色

时间: 2024-08-04 05:25:55

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

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

www.qdmm.com/BookReader/1147240,68375349.aspxwww.qdmm.com/BookReader/1147240,68375352.aspxwww.qdmm.com/BookReader/1147240,68375355.aspxwww.qdmm.com/BookReader/1147240,68375358.aspxwww.qdmm.com/BookReader/1147240,68375363.aspxwww.qdmm.com/BookReader/1

【转】使用blend改变图片颜色

最近对Core Animation和Core Graphics的内容东西比较感兴趣,自己之前也在这块相对薄弱,趁此机会也想补习一下这块的内容,所以之后几篇可能都会是对CA和CG学习的记录的文章. 在应用里一个很常见的需求是主题变换:同样的图标,同样的素材,但是需要按照用户喜爱变为不同的颜色.在iOS5和6的SDK里部分标准控件引入了tintColor,来满足个性化界面的需求,但是Apple在这方面还远远做的不够.一是现在用默认控件根本难以做出界面优秀的应用,二是tintColor所覆盖的并不够全

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

最近对Core Animation和Core Graphics的内容东西比较感兴趣,自己之前也在这块相对薄弱,趁此机会也想补习一下这块的内容,所以之后几篇可能都会是对CA和CG学习的记录的文章. 在应用里一个很常见的需求是主题变换:同样的图标,同样的素材,但是需要按照用户喜爱变为不同的颜色.在iOS5和6的SDK里部分标准控件引入了tintColor,来满足个性化界面的需求,但是Apple在这方面还远远做的不够.一是现在用默认控件根本难以做出界面优秀的应用,二是tintColor所覆盖的并不够全

ps改变图片颜色

现在做产品,需要时常p个图啥的,在网上找来n个教程,但是若是背景图是黑色,则有些教程步骤较为繁琐,现在整理了其中 最简便高效的教程例子: 1.打开图,并将背景图层解锁. 2选中解锁后的图层,再依次选择菜单"图像">"调整">"色相/饱和度"弹出对话框. 3.首先选中对话框右下方的"着色"复选框,再调整明度值到+45,再调整饱和度值为+100,之后再调整色相值, 直到图像变成你需要的颜色,这里我需要大红色,所以我设置

通过路径获取图片及改变图片颜色

NSString *starsPath = [[NSBundle mainBundle] pathForResource:@"star" ofType:@"png"]; UIImage *theImage = [[UIImage alloc] initWithContentsOfFile:starsPath]; theImage= [theImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]

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

参考: 图片处理:颜色矩阵和坐标变换矩阵 Egret-滤镜 之前面试有问到如何改变图片的颜色.貌似之前做Flash的时候做过,做Egret后没有此类需求,所以一直没有研究过. 现在来弄一弄如何改变图片的颜色. 目录 一 图片像素的颜色值 二 滤镜 三 颜色矩阵 四 应用场景 一 图片像素的颜色值 创建一个位图,并打印位图的颜色值 let bm:egret.Bitmap = new egret.Bitmap(); bm.texture = RES.getRes("preload_start_png

利用色光三原色调整图片颜色

最近学习了android中的图片颜色的处理,现在来总结一下.android中存在三种方式来调整图片的颜色,来达到不同的效果.分别是:利用色光三原色来调整图片颜色,利用颜色矩阵来调整图片颜色,利用调整每一个像素点来调整图片颜色.显然调整颜色的方式是越来越细致的.那么在这一篇文章中,就总结一下通过色光三原色来调整图片的颜色. 一.基础知识 首先说一下基础的颜色知识.android中采取的颜色模型是RGBA模型.即R代表红色,G代表绿色,B代表蓝色,A代表透明度.而通过改变一张图片的三原色的色相,饱和

改变图片的颜色

定义 #import <UIKit/UIKit.h> @interface UIImage (ChangeImageColor) /** * 改变图片的颜色 * * @param tintColor <#tintColor description#> * * @return <#return value description#> */ - (UIImage *) imageWithTintColor:(UIColor *)tintColor; @end 实现 - (U

使用 SetColorFilter 神奇地改变图片的颜色

关键代码如下: colors.xml文件中定义一个颜色值: <color name="permission_dialog_img_color">#000000</color> 代码中调用: int mFilterColor = ContextCompat.getColor(mContext,R.color.permission_dialog_img_color); int blue = Color.blue(mFilterColor); int green =