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( " c:\\1.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#对图片进行马赛克处理,可控制模糊程度相关推荐
- 给图像马赛克处理的程序c语言,C#对图片进行马赛克处理可控制模糊程度的实现代码...
具体代码如下所示: using System.Drawing; using System.Drawing.Imaging; using System.Web.Mvc; namespace MVC201 ...
- 如何用Java对图片进行马赛克处理
如何用Java对图片进行马赛克处理? 把图片压缩成32*32这个不难,java有这样的类提供了方法BufferedImage bi = new BufferedImage(w * 2 / scale, ...
- python对图片进行马赛克处理
源代码 在这里插入代码片 import matplotlib.pyplot as plt #这里输入图像 dog = plt.imread('./asd.jpg') print(dog.shape) ...
- 借助android uiautomator+情迁工具箱自动朗读实现语音红包自动发送语音,自动领取...
如果不借助自动化,目前是需要手动点开红包,然后按住不放等待播放完毕才行. 目前就完成了详情界面的语音红包点击,而且无法判断是否领取过了.因为无法取出信息,这是uiautomator的缺陷. qqlis ...
- PHP生成海报 文字描边,php实现图片添加描边字和马赛克的方法
本文实例讲述了php实现图片添加描边字和马赛克的方法.分享给大家供大家参考.具体实现方法如下: 马赛克:void imagemask ( resource image, int x1, int y1, ...
- php打印马赛克,PHP-如何用PHP给一张图生成马赛克效果?
马塞克效果代码如下: /** * gd image mask * * @copyright ugia.cn */ function imagemask(&$im, $x1, $y1, $x2, ...
- Python 利用聚类算法对图片进行颜色压缩
背景 最近看到其他公众号发的一篇文章<三个印度人改变压缩算法,一意孤行整个暑假,却因"太简单"申不到经费>,DCT是最原始的图像压缩算法 全称为Discrete Cos ...
- 图片马赛克怎么添加?图片马赛克添加方法分享!
图片马赛克怎么添加?在图像处理中,打马赛克是一种常用的保护隐私的方法.通过在敏感区域覆盖一层特定颜色的像素块,可以达到遮挡敏感信息的目的.最常见的颜色是黑色和白色,但也可以根据实际需要选择其他颜色.打 ...
- 利用opencv实现图像马赛克处理的三种方法
前言:本文就图像的马赛克处理,基于opencv提出了三种解决方案,并详细地介绍了三种方法的原理.示例.问题及问题的解决方案. 方法一 原理介绍:利用resize()将图片先缩小,再放大 代码示例: i ...
最新文章
- java perl_在Java中调用Perl脚本
- 【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比
- 搭建Android上的服务器 “实现隔空取物”
- 基于zbus的MySQL透明代理(100行)
- latex_列表和表格环境_给tabular加lable标签问题
- winRAR 离购买许可只剩xx天
- 数据分析:新冠疫情实时数据爬取
- 伺服驱动器的工作原理及伺服驱动器的常见接线方法
- rk3399 typec鼠标及滑鼠问题
- 32位、64位与Java开发研究分析
- [ 生活 ] 我有一个想法!
- 计算机科学导论在线作业,南开21春学期《计算机科学导论》在线作业
- 966. Vowel Spellchecker
- GB8624-2012 与GB8624-2006 有什么区别?
- Android安全包括哪些
- QH VASP 命令
- 哪些学校不让用matlab,新一轮制裁?部分高校被禁止使用matlab,科学无国界就是一句笑话...
- vue.js毕业设计,基于vue.js前后端分离教室预约小程序系统 开题报告
- WPF入门第四篇 WPF模板
- python检测图像中的矩形_检测图像中的矩形并裁剪