This simple library allows you to easily create and combine various pixelation effects.
Based on a wonderful script by David DeSandro: close-pixelate.desandro.com.
You may be also be interested in the iOS/Swift version of the library.
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(48)
.setSize(50)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(48)
.setOffset(24)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(8)
.setSize(6)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(32)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setOffset(15)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(26)
.setOffset(13)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(18)
.setOffset(10)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(12)
.setOffset(8)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(48)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(48)
.setOffset(12)
.setAlpha(0.5f)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(48)
.setOffset(36)
.setAlpha(0.5f)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(16)
.setSize(8)
.setOffset(4)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(6)
.setOffset(8)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(9)
.setOffset(16)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(12)
.setOffset(24)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setSize(9)
.setOffset(0)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(24)
.setSize(25)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(24)
.setOffset(12)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(24)
.setAlpha(0.6f)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(32)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setOffset(16)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(32)
.setOffset(0)
.setAlpha(0.5f)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(16)
.setSize(9)
.setOffset(0)
.setAlpha(0.5f)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(24)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(24)
.setSize(9)
.setOffset(12)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(48)
.setOffset(24)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Circle)
.setResolution(48)
.setOffset(0)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(16)
.setSize(15)
.setOffset(0)
.setAlpha(0.6f)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(16)
.setSize(15)
.setOffset(8)
.setAlpha(0.6f)
.build());
Pixelate.render(bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(48)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(12)
.setSize(8)
.build(),
new PixelateLayer.Builder(PixelateLayer.Shape.Diamond)
.setResolution(12)
.setSize(8)
.setOffset(6)
.build());
The library is available at jcenter:
repositories {
jcenter()
}
dependencies {
compile 'io.uuddlrlrba:close-pixelate:1.2.0'
}
There are several Pixelate.from*
methods in the
Pixelate
class, allowing to create a pixelated bitmap from other bitmaps, resources, input streams, etc:
Bitmap pixelated = new Pixelate.fromBitmap(
bitmap,
new PixelateLayer.Builder(PixelateLayer.Shape.Square)
.setResolution(48)
.setSize(50)
.build()
);
You also can draw directly on a bitmap or on a canvas, using Pixelate.render*
methods.
There are three basic layer types:
Original | Square | Diamond | Circle |
---|---|---|---|
You can change size, resolution, offset and alpha parameters of each layer:
resolution = 10 | resolution = 25 | resolution = 20, size = 50, alpha = 0.5 |
---|---|---|
You can also combine several layers into one image:
square, resolution = 25 | diamond, resolution = 10 | |||
---|---|---|---|---|
+ | = |