在C#语法中,怎么实现将图片做成马赛克效果?下面编程教程网小编给大家详细介绍一下具体实现代码!
代码如下:
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.Mvc;
namespace MVC2017_Sample.Controllers
{
public class DefaultController : Controller
{
public ActionResult Index()
{
//原图
Image img = Image.FromFile("e:\\pic.jpg");
Bitmap map = new Bitmap(img);
//马赛克处理后的图片
Image img2 = AdjustTobMosaic(map, 20);
img2.Save("c:\\1_bak.jpg", ImageFormat.Jpeg);
return View();
}
/// <summary>
/// 马赛克处理
/// </summary>
/// <param name="bitmap"></param>
/// <param name="effectWidth"> 影响范围 每一个格子数 </param>
/// <returns></returns>
public Bitmap AdjustTobMosaic(System.Drawing.Bitmap bitmap, int effectWidth)
{
// 差异最多的就是以照一定范围取样 玩之后直接去下一个范围
for (int heightOfffset = 0; heightOfffset < bitmap.Height; heightOfffset += effectWidth)
{
for (int widthOffset = 0; widthOffset < bitmap.Width; widthOffset += effectWidth)
{
int avgR = 0, avgG = 0, avgB = 0;
int blurPixelCount = 0;
for (int x = widthOffset; (x < widthOffset + effectWidth && x < bitmap.Width); x++)
{
for (int y = heightOfffset; (y < heightOfffset + effectWidth && y < bitmap.Height); y++)
{
System.Drawing.Color pixel = bitmap.GetPixel(x, y);
avgR += pixel.R;
avgG += pixel.G;
avgB += pixel.B;
blurPixelCount++;
}
}
// 计算范围平均
avgR = avgR / blurPixelCount;
avgG = avgG / blurPixelCount;
avgB = avgB / blurPixelCount;
// 所有范围内都设定此值
for (int x = widthOffset; (x < widthOffset + effectWidth && x < bitmap.Width); x++)
{
for (int y = heightOfffset; (y < heightOfffset + effectWidth && y < bitmap.Height); y++)
{
System.Drawing.Color newColor = System.Drawing.Color.FromArgb(avgR, avgG, avgB);
bitmap.SetPixel(x, y, newColor);
}
}
}
}
return bitmap;
}
}
}
以上是编程学习网小编为您介绍的“C#语法怎么实现图片马赛克效果?”的全面内容,想了解更多关于 php入门 内容,请继续关注编程基础学习网。
沃梦达教程
本文标题为:C#语法怎么实现图片马赛克效果?
基础教程推荐
猜你喜欢
- php数组函数序列之array_sum() – 计算数组元素值之和 2024-01-15
- PHP判断一个字符串是否是回文字符串的方法 2024-01-31
- PHP+MySQL+sphinx+scws实现全文检索功能详解 2023-01-31
- 设定php简写功能的方法 2023-03-17
- php实现构建排除当前元素的乘积数组方法 2022-11-23
- PHP手机短信验证码实现流程详解 2022-10-18
- PHP实现文件下载【实例分享】 2024-04-27
- php实现数组筛选奇数和偶数示例 2024-02-05
- PHP实现抽奖系统的示例代码 2023-06-26
- Yii框架连表查询操作示例 2023-02-13
