1. MosaicHelper.AdjustTobMosaic(
  2. @"C:\Users\xxxue\Desktop\QQ图片20180704142029.jpg",
  3. @"C:\Users\xxxue\Desktop\xxxx.jpg",
  4. 20);
  1. using System;
  2. using System.Drawing;
  3. namespace ConsoleApp2
  4. {
  5. public class MosaicHelper
  6. {
  7. /// <summary>
  8. /// 马赛克处理图片 by chen_pp ,xuejie
  9. /// 2018-07-06
  10. /// </summary>
  11. /// <param name="ImgFile">原图片</param>
  12. /// <param name="sImgPath">加码图片</param>
  13. /// <param name="effectWidth"> 影响范围 每一个格子数</param>
  14. public static string[] AdjustTobMosaic(string ImgFile, string sImgPath, int effectWidth)
  15. {
  16. //设置马赛克百分比宽高(0~1f)
  17. Single maWidth = 1f, maHeight = 1f;
  18. string[] resMsg = new[] { "成功", "null" };
  19. using (Bitmap bitmap = new Bitmap(Image.FromFile(ImgFile)))
  20. {
  21. try
  22. {
  23. // 差异最多的就是以照一定范围取样 之后直接去下一个范围
  24. for (int heightOfffset = 0; heightOfffset < bitmap.Height * maHeight; heightOfffset += effectWidth)//可以调整大码区域,调整打码宽高
  25. {
  26. for (int widthOffset = 0; widthOffset < bitmap.Width * maWidth; widthOffset += effectWidth)
  27. {
  28. int avgR = 0, avgG = 0, avgB = 0;
  29. int blurPixelCount = 0;
  30. for (int x = widthOffset; (x < widthOffset + effectWidth && x < bitmap.Width); x++)
  31. {
  32. for (int y = heightOfffset; (y < heightOfffset + effectWidth && y < bitmap.Height); y++)
  33. {
  34. System.Drawing.Color pixel = bitmap.GetPixel(x, y);
  35. avgR += pixel.R;
  36. avgG += pixel.G;
  37. avgB += pixel.B;
  38. blurPixelCount++;
  39. }
  40. }
  41. // 计算范围平均
  42. avgR = avgR / blurPixelCount;
  43. avgG = avgG / blurPixelCount;
  44. avgB = avgB / blurPixelCount;
  45. // 所有范围内都设定此值
  46. for (int x = widthOffset; (x < widthOffset + effectWidth && x < bitmap.Width); x++)
  47. {
  48. for (int y = heightOfffset; (y < heightOfffset + effectWidth && y < bitmap.Height); y++)
  49. {
  50. System.Drawing.Color newColor = System.Drawing.Color.FromArgb(avgR, avgG, avgB);
  51. bitmap.SetPixel(x, y, newColor);
  52. }
  53. }
  54. }
  55. }
  56. //保存文件
  57. bitmap.Save(sImgPath, System.Drawing.Imaging.ImageFormat.Jpeg);
  58. }
  59. catch (Exception ex)
  60. {
  61. resMsg[0] = "失败";
  62. resMsg[1] = ex.Message;
  63. }
  64. }
  65. return resMsg;
  66. }
  67. }
  68. }

C# 图片进行马赛克处理的更多相关文章

  1. iOS 图片实现马赛克效果

    /** *实现马赛克效果 */ // 导出CIImage图片 CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImageimageNamed: ...

  2. 自己写了一个图片的马赛克消失效果(jQuery)

    其中的一个效果: html代码: <h1>单击图片,产生效果</h1> <div class="box"></div> 插件代码: ...

  3. Photoshop怎么实现图片局部马赛克

    学好ps是一件很重要的事情,作为日常必备技能,不管是在遇到这样的同时请求帮忙或者老板发配的任务的时候,就能分分钟派上用场了. 1:安装运行photoshop,点击文件-打开,选择要ps的图片. 图片. ...

  4. (H5)canvas实现裁剪图片和马赛克功能,以及又拍云上传图片

    1.核心功能 此组件功能包含: 图片裁剪(裁剪框拖动,裁剪框改变大小): 图片马赛克(绘制马赛克,清除马赛克): 图片预览.图片还原(返回原图.返回处理图): 图片上传(获取签名.上传图片). 2.核 ...

  5. python给图片打马赛克

    图片马赛克 关注公众号"轻松学编程"了解更多. 导包 import numpy as np import matplotlib.pyplot as plt %matplotlib ...

  6. C#将图片进行马赛克处理

    /// <summary> /// 马赛克处理 /// </summary> /// <param name="bitmap"></par ...

  7. [Xcode 实际操作]六、媒体与动画-(5)使用CoreImage框架给图片添加马赛克效果

    目录:[Swift]Xcode实际操作 本文将演示如何使用CoreImage图像处理框架,给图片添加像素化的滤镜效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift ...

  8. three.js 将图片马赛克化

    这篇郭先生来说说BufferGeometry,类型化数组和粒子系统的使用,并且让图片有马赛克效果(同理可以让不清晰的图片清晰化),如图所示.在线案例点击博客原文 1. 解析图片 解析图片和上一篇一样 ...

  9. canva实践小实例 —— 马赛克效果

    前面给大家带来了操作像素的API,此时此刻,我觉得应该配以小实例来进行进一步的说明和演示,以便给大家带来更宽广的视野和灵感,你们看了我的那么多的文章,应该是懂我的风格,废话不多说,进入正题: 这次给大 ...

随机推荐

  1. 0.b概述

    一.计算机与算法 计算 = 信息处理 计算模型 = 计算机 = 信息处理工具 算法:特定计算模型下,解决特定问题的指令序列  要素:输入 输出 正确性 确定性 可行性 有穷性 好算法:正确 健壮 可读 ...

  2. Extjs 兼容IE8常见问题及解决方法

    1. 在IE8中整个页面都打不开,一般情况是: 页面组件中最后一个属性出现了逗号 没有多余的逗号,就很有可能是组件中没有设置renderTo:Ext.getBody(); 2. 页面按钮颜色失效 自定 ...

  3. [转]github 上传project代码

    原文地址:https://www.cnblogs.com/f1194361820/p/4741558.html 1)将远程仓库纳入管理 其实就是添加远程仓库,在你已有的本地仓库目录下执行如下命令: $ ...

  4. 7层网络以及5种Linux IO模型以及相应IO基础

    一.七层网络模型 OSI是Open System Interconnection的缩写,意为开放式系统互联.国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,它是一个七层的. ...

  5. Flutter——Checkbox组件、CheckboxListTile(多选框组件)

    Checkbox组件 Checkbox组件常用的属性: 属性 描述 value true 或者 false onChanged 改变的时候触发的事件  activeColor 选中的颜色.背景颜色 c ...

  6. brew install thrift

    ➜ ~ brew install thriftUpdating Homebrew...Warning: You are using macOS 10.11.We (and Apple) do not ...

  7. 回归分析特征选择(包括Stepwise算法) python 实现

    # -*- coding: utf-8 -*-"""Created on Sat Aug 18 16:23:17 2018 @author: acadsoc"& ...

  8. P1462 通往奥格瑞玛的道路[最短路+二分+堆优化]

    题目来源:洛谷 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描 ...

  9. JS多线程之Web Worker

    什么是Web Worker web worker 是运行在后台的 JavaScript,不会影响页面的性能. 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成. web wor ...

  10. Session&Cookie&localStorage浅谈

    Session&Cookie&localStorage 领导让我开发一个有两张信息表单需要提交页面的网站,我作为一名开发人员,这个需求太简单了,和领导说直接存session sessi ...