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#对图片进行马赛克处理,可控制模糊程度相关推荐

  1. 给图像马赛克处理的程序c语言,C#对图片进行马赛克处理可控制模糊程度的实现代码...

    具体代码如下所示: using System.Drawing; using System.Drawing.Imaging; using System.Web.Mvc; namespace MVC201 ...

  2. 如何用Java对图片进行马赛克处理

    如何用Java对图片进行马赛克处理? 把图片压缩成32*32这个不难,java有这样的类提供了方法BufferedImage bi = new BufferedImage(w * 2 / scale, ...

  3. python对图片进行马赛克处理

    源代码 在这里插入代码片 import matplotlib.pyplot as plt #这里输入图像 dog = plt.imread('./asd.jpg') print(dog.shape) ...

  4. 借助android uiautomator+情迁工具箱自动朗读实现语音红包自动发送语音,自动领取...

    如果不借助自动化,目前是需要手动点开红包,然后按住不放等待播放完毕才行. 目前就完成了详情界面的语音红包点击,而且无法判断是否领取过了.因为无法取出信息,这是uiautomator的缺陷. qqlis ...

  5. PHP生成海报 文字描边,php实现图片添加描边字和马赛克的方法

    本文实例讲述了php实现图片添加描边字和马赛克的方法.分享给大家供大家参考.具体实现方法如下: 马赛克:void imagemask ( resource image, int x1, int y1, ...

  6. php打印马赛克,PHP-如何用PHP给一张图生成马赛克效果?

    马塞克效果代码如下: /** * gd image mask * * @copyright ugia.cn */ function imagemask(&$im, $x1, $y1, $x2, ...

  7. Python 利用聚类算法对图片进行颜色压缩

    背景 最近看到其他公众号发的一篇文章<三个印度人改变压缩算法,一意孤行整个暑假,却因"太简单"申不到经费>,DCT是最原始的图像压缩算法 全称为Discrete Cos ...

  8. 图片马赛克怎么添加?图片马赛克添加方法分享!​

    图片马赛克怎么添加?在图像处理中,打马赛克是一种常用的保护隐私的方法.通过在敏感区域覆盖一层特定颜色的像素块,可以达到遮挡敏感信息的目的.最常见的颜色是黑色和白色,但也可以根据实际需要选择其他颜色.打 ...

  9. 利用opencv实现图像马赛克处理的三种方法

    前言:本文就图像的马赛克处理,基于opencv提出了三种解决方案,并详细地介绍了三种方法的原理.示例.问题及问题的解决方案. 方法一 原理介绍:利用resize()将图片先缩小,再放大 代码示例: i ...

最新文章

  1. java perl_在Java中调用Perl脚本
  2. 【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比
  3. 搭建Android上的服务器 “实现隔空取物”
  4. 基于zbus的MySQL透明代理(100行)
  5. latex_列表和表格环境_给tabular加lable标签问题
  6. winRAR 离购买许可只剩xx天
  7. 数据分析:新冠疫情实时数据爬取
  8. 伺服驱动器的工作原理及伺服驱动器的常见接线方法
  9. rk3399 typec鼠标及滑鼠问题
  10. 32位、64位与Java开发研究分析
  11. [ 生活 ] 我有一个想法!
  12. 计算机科学导论在线作业,南开21春学期《计算机科学导论》在线作业
  13. 966. Vowel Spellchecker
  14. GB8624-2012 与GB8624-2006 有什么区别?
  15. Android安全包括哪些
  16. QH VASP 命令
  17. 哪些学校不让用matlab,新一轮制裁?部分高校被禁止使用matlab,科学无国界就是一句笑话...
  18. vue.js毕业设计,基于vue.js前后端分离教室预约小程序系统 开题报告
  19. WPF入门第四篇 WPF模板
  20. python检测图像中的矩形_检测图像中的矩形并裁剪

热门文章

  1. Ubuntu下安装Nvidia和Intel双显卡驱动
  2. Map之containsKey()
  3. DC/DCT/DCG 差别和联系
  4. poj 3975hdu 1850 (nim)
  5. H5游戏-面试问题知识点总结
  6. 微型计算机仓库管理系统书籍,微型计算机应用于机物料仓库管理系统
  7. myeclipse中导入的js文件报错(出现红叉叉,提示语法错误)
  8. 只有程序员看的懂面试圣经|如何拿下编程面试
  9. 怎么彻底删除office注册表信息?
  10. 软件测试学习(基础篇)— —第5天:JS基础