使用asp.net改变网页上图片颜色比如灰色变彩色
最近奇葩经理提出了奇葩的需求,要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,尼玛楼主的感受你们不懂!于是有了下面的代码。。。
用法:调用update_pixelColor方法并传参数即可
#region改变图片颜色 ///<summary> ///改变图片的颜色 ///</summary> ///<paramname="filePath">图片的完整路径</param> ///<paramname="colorIndex">改变的颜色,true为灰色,false为彩色</param> publicvoidupdate_pixelColor(stringfilePath,boolcolorIndex) { Bitmapbmp=newBitmap(Bitmap.FromFile(filePath)); intvalue=0; for(inti=0;i<bmp.Height;i++) { for(intj=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> ///<paramname="posClr">单点像素</param> ///<returns>int</returns> privateintGetHongNumColor(ColorposClr) { return(posClr.R*19595+posClr.G*38469+posClr.B*7472)>>16; } ///<summary> ///获取灰色单点像素 ///</summary> ///<paramname="posClr">单点像素</param> ///<returns>Color</returns> privateintGetGrayNumColor(ColorposClr) { //要改变ARGB return(posClr.R*19595+posClr.G*38469+posClr.B*7472)>>16; } #endregion改变图片颜色