android 給圖片加文字、圖片水印

Stamper is a tool for stamping a pattern into a picture,it likes a watermark.

Stamper是一個(gè)給圖片打水印的工具,支持圖片水印和文字水印,水印位置可以任意調(diào)節(jié)。

效果圖:


1
2

實(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' }

? ? ? ? }

? ? ? ? }

Step 2. Add the dependency

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();

2.use it stamp a image;

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();

3.the callback

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;

? ? ? ? ? ? }

? ? ? ? }

? ? };

完成代碼見github:

https://github.com/KernHu/Stamper

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容