Csharp/C#教程:C#对图片进行马赛克处理可控制模糊程度的实现代码分享

具体代码如下所示:

usingSystem.Drawing; usingSystem.Drawing.Imaging; usingSystem.Web.Mvc; namespaceMVC2017_Sample.Controllers { publicclassDefaultController:Controller { publicActionResultIndex() { //原图 Imageimg=Image.FromFile("c:\1.jpg"); Bitmapmap=newBitmap(img); //马赛克处理后的图片Imageimg2=AdjustTobMosaic(map,20); img2.Save("c:\1_bak.jpg",ImageFormat.Jpeg); returnView(); } ///<summary> ///马赛克处理 ///</summary> ///<paramname="bitmap"></param> ///<paramname="effectWidth">影响范围每一个格子数</param> ///<returns></returns> publicBitmapAdjustTobMosaic(System.Drawing.Bitmapbitmap,inteffectWidth) { //差异最多的就是以照一定范围取样玩之后直接去下一个范围 for(intheightOfffset=0;heightOfffset<bitmap.Height;heightOfffset+=effectWidth) { for(intwidthOffset=0;widthOffset<bitmap.Width;widthOffset+=effectWidth) { intavgR=0,avgG=0,avgB=0; intblurPixelCount=0; for(intx=widthOffset;(x<widthOffset+effectWidth&&x<bitmap.Width);x++) { for(inty=heightOfffset;(y<heightOfffset+effectWidth&&y<bitmap.Height);y++) { System.Drawing.Colorpixel=bitmap.GetPixel(x,y); avgR+=pixel.R; avgG+=pixel.G; avgB+=pixel.B; blurPixelCount++; } } //计算范围平均 avgR=avgR/blurPixelCount; avgG=avgG/blurPixelCount; avgB=avgB/blurPixelCount; //所有范围内都设定此值 for(intx=widthOffset;(x<widthOffset+effectWidth&&x<bitmap.Width);x++) { for(inty=heightOfffset;(y<heightOfffset+effectWidth&&y<bitmap.Height);y++) { System.Drawing.ColornewColor=System.Drawing.Color.FromArgb(avgR,avgG,avgB); bitmap.SetPixel(x,y,newColor); } } } } returnbitmap; } } }

上述就是C#学习教程:C#对图片进行马赛克处理可控制模糊程度的实现代码分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/908189.html

(0)
上一篇 2021年10月25日
下一篇 2021年10月25日

精彩推荐