前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android图像处理-像素化的原理及实现

Android图像处理-像素化的原理及实现

原创
作者头像
腾讯云开发者社区
修改2017-11-14 16:52:25
2.2K0
修改2017-11-14 16:52:25
举报
文章被收录于专栏:腾讯云开发者社区头条

作者:夏正冬

原文地址:Android图像处理-像素化的原理及实现

博客地址:xiazdong.github.io

马赛克算法首先需要确定马赛克单元的大小,即小方块的大小。马赛克图的每个马赛克单元都是纯色的块,其取值一般为原图中该块区域的颜色的均值(这里的实现为了简化,取了原图中该区域左上角的像素)。马赛克单元的大小决定了最后的马赛克图的样子,当值为1时,就是原图。

上图中,最左边的图是原图,中间的图是马赛克图。当然你也可以对图像的某块区域打马赛克,如最右边的图,他只对头部打马赛克。

算法实现如下:

代码语言:javascript
复制
public class PixelateUtil {
    

使用方法:

代码语言:javascript
复制
Bitmap result = PixelateUtil.pixelate(bitmap, zoneWidth)

开源项目

Pixelate是实现基本马赛克效果的开源项目,它能够异步对整个或者部分的Bitmap区域打马赛克,处理完后会在OnPixelateListener的onPixelated()中回调,最小的SDK版本为16。

使用方法如下:

代码语言:javascript
复制
new Pixelate(origin)
    .setArea(0,0,origin.getWidth(),origin.getHeight())  

android-close-pixelate能够实现多样式的马赛克效果。使用方法如下:

代码语言:javascript
复制
Bitmap pixelated = Pixelate.fromBitmap(
        origin,
        new PixelateLayer.Builder(PixelateLayer.Shape.Circle) 

效果如下:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开源项目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档