C# 图片进行马赛克处理
MosaicHelper.AdjustTobMosaic(
@"C:\Users\xxxue\Desktop\QQ图片20180704142029.jpg",
@"C:\Users\xxxue\Desktop\xxxx.jpg",
20);
using System;
using System.Drawing;
namespace ConsoleApp2
{
public class MosaicHelper
{
/// <summary>
/// 马赛克处理图片 by chen_pp ,xuejie
/// 2018-07-06
/// </summary>
/// <param name="ImgFile">原图片</param>
/// <param name="sImgPath">加码图片</param>
/// <param name="effectWidth"> 影响范围 每一个格子数</param>
public static string[] AdjustTobMosaic(string ImgFile, string sImgPath, int effectWidth)
{
//设置马赛克百分比宽高(0~1f)
Single maWidth = 1f, maHeight = 1f;
string[] resMsg = new[] { "成功", "null" };
using (Bitmap bitmap = new Bitmap(Image.FromFile(ImgFile)))
{
try
{
// 差异最多的就是以照一定范围取样 之后直接去下一个范围
for (int heightOfffset = 0; heightOfffset < bitmap.Height * maHeight; heightOfffset += effectWidth)//可以调整大码区域,调整打码宽高
{
for (int widthOffset = 0; widthOffset < bitmap.Width * maWidth; 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);
}
}
}
}
//保存文件
bitmap.Save(sImgPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception ex)
{
resMsg[0] = "失败";
resMsg[1] = ex.Message;
}
}
return resMsg;
}
}
}
C# 图片进行马赛克处理的更多相关文章
- iOS 图片实现马赛克效果
/** *实现马赛克效果 */ // 导出CIImage图片 CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImageimageNamed: ...
- 自己写了一个图片的马赛克消失效果(jQuery)
其中的一个效果: html代码: <h1>单击图片,产生效果</h1> <div class="box"></div> 插件代码: ...
- Photoshop怎么实现图片局部马赛克
学好ps是一件很重要的事情,作为日常必备技能,不管是在遇到这样的同时请求帮忙或者老板发配的任务的时候,就能分分钟派上用场了. 1:安装运行photoshop,点击文件-打开,选择要ps的图片. 图片. ...
- (H5)canvas实现裁剪图片和马赛克功能,以及又拍云上传图片
1.核心功能 此组件功能包含: 图片裁剪(裁剪框拖动,裁剪框改变大小): 图片马赛克(绘制马赛克,清除马赛克): 图片预览.图片还原(返回原图.返回处理图): 图片上传(获取签名.上传图片). 2.核 ...
- python给图片打马赛克
图片马赛克 关注公众号"轻松学编程"了解更多. 导包 import numpy as np import matplotlib.pyplot as plt %matplotlib ...
- C#将图片进行马赛克处理
/// <summary> /// 马赛克处理 /// </summary> /// <param name="bitmap"></par ...
- [Xcode 实际操作]六、媒体与动画-(5)使用CoreImage框架给图片添加马赛克效果
目录:[Swift]Xcode实际操作 本文将演示如何使用CoreImage图像处理框架,给图片添加像素化的滤镜效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift ...
- three.js 将图片马赛克化
这篇郭先生来说说BufferGeometry,类型化数组和粒子系统的使用,并且让图片有马赛克效果(同理可以让不清晰的图片清晰化),如图所示.在线案例点击博客原文 1. 解析图片 解析图片和上一篇一样 ...
- canva实践小实例 —— 马赛克效果
前面给大家带来了操作像素的API,此时此刻,我觉得应该配以小实例来进行进一步的说明和演示,以便给大家带来更宽广的视野和灵感,你们看了我的那么多的文章,应该是懂我的风格,废话不多说,进入正题: 这次给大 ...
随机推荐
- 字节数组(byte[])与16进制字符串转换
/// <summary> /// 转换扩展类 /// </summary> public static class ConvertExtend { /// <summa ...
- Python3标准库使用样例
原:https://doughellmann.com/blog/the-python-3-standard-library-by-example/the-python-3-standard-libra ...
- JAVA操作ORACLE大对象
一:操作CLOB (1)数据库表结构如下: create table CLOB_TEST ( ID VARCHAR2(5) not null, ...
- TypeScript入门一:配置TS工作环境
配置手动编译TS文件工作环境 配置webpack自动化打包编译工作环境(后面补充) 一.TypeScript入门学习引言 进入主题之前,首先说明这个系列的博客是我刚刚接触TypeScript的学习笔记 ...
- C++ 虚表虚函数怎么就实现了多态?
虚表vftable,编译器为每个拥有虚函数的类都建有一张虚函数表,里面存有虚函数的入口指针(地址).在类对象的内存布局中,先是一个vfptr虚表指针,指向虚表首地址,而后通过偏移量的形式来访问虚表中的 ...
- MySql 8.0服务端安装后,用navicat12连接时报2059错误_解决
先看连接错误 连接失败:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: .... 解决方法: 进入MySQ ...
- 元类编程--__get__ __set__属性描述符
from datetime import date, datetime import numbers class IntField: #数据描述符,实现以下任意一个,都会变为属性描述符 def __g ...
- Tkinter关于新建窗口内Entry无法获取值(值全为空)的解决办法
最近在做Python的课程作业,遇到一个问题,描述如下: 使用Python内置的Tkinter模块进行GUI编程 给一个按钮(或菜单)绑定事件,打开一个新窗口,新窗口内有Entry若干,通过textv ...
- Luogu P1062 数列
Luogu P1062 数列 题目说: 把所有$k$的方幂及所有有限个互不相等的$k$的方幂之和构成一个递增的序列. 这就是说,每一个$k$的方幂只能有或没有. 有为$0$,没有为$1$. 所以这些数 ...
- 本地jar通过maven命令导到本地仓库里
mvn install:install-file -Dfile=D:\repo\mybtais-generator-1.0.0.jar -DgroupId=mybatis.plugins -Darti ...