Stamper is a tool for stamping a pattern into a picture,it likes a watermark.
Stamper是一個(gè)給圖片打水印的工具,支持圖片水印和文字水印,水印位置可以任意調(diào)節(jié)。
效果圖:


實(shí)現(xiàn)原理:
Stamper將原圖當(dāng)作畫布,把水印圖或者文字畫入原圖中。生成bitmap。
Stamper使用方法:
1.添加依賴
Step 1. Add the JitPack repository to your build file; Add it in your root build.gradle at the end of repositories:
allprojects {
? ? ? ? repositories {
? ? ? ? ...
? ? ? ? maven { url 'https://jitpack.io' }
? ? ? ? }
? ? ? ? }
dependencies {
? ? ? ? implementation 'com.github.KernHu:Stamper:1.1'
}
2.代碼部分:
1.use it stamp a text;
Bitmap bitmap3 = BitmapFactory.decodeResource(getResources(), R.drawable.sample_plot_3);
Stamper.with(MainActivity.this)
? ? ? .setLabel("National Geography")
? ? ? .setLabelColor(getResources().getColor(R.color.theme))//Color.rgb(255, 60, 70)
? ? ? .setLabelSize(60)
? ? ? .setMasterBitmap(bitmap3)
? ? ? .setStampType(StampType.TEXT)
? ? ? .setStampPadding(new StampPadding(bitmap3.getWidth() / 4, bitmap3.getHeight() / 6))
? ? ? .setStampWatcher(mStampWatcher)
? ? ? .setRequestId(1001)
? ? ? .build();
Bitmap bitmap4 = BitmapFactory.decodeResource(getResources(), R.drawable.sample_plot_4);
Bitmap watermark = BitmapFactory.decodeResource(getResources(), R.drawable.ic_watermark);
Stamper.with(MainActivity.this)
? ? ? .setMasterBitmap(bitmap4)
? ? ? .setWatermark(watermark)
? ? ? .setStampType(StampType.IMAGE)
? ? ? .setStampPadding(new StampPadding(bitmap4.getWidth() - watermark.getWidth() - 40, 40))
? ? ? .setStampWatcher(mStampWatcher)
? ? ? .setRequestId(1002)
? ? ? .build();
StampWatcher mStampWatcher = new StampWatcher() {
? ? ? ? @Override
? ? ? ? protected void onSuccess(Bitmap bitmap, int requestId) {
? ? ? ? ? ? super.onSuccess(bitmap, requestId);
? ? ? ? ? ? switch (requestId) {
? ? ? ? ? ? ? ? case 1001:
? ? ? ? ? ? ? ? ? ? //the result of text stamper
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 1002:
? ? ? ? ? ? ? ? ? ? //the result of image stamper
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? @Override
? ? ? ? protected void onError(String error, int requestId) {
? ? ? ? ? ? super.onError(error, requestId);
? ? ? ? ? ? switch (requestId) {
? ? ? ? ? ? ? ? case 1001://
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 1002://
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? };
https://github.com/KernHu/Stamper