uniapp 图片添加水印 (引用安卓原生包)

let File = plus.android.importClass('java.io.File')
let FileOutputStream = plus.android.importClass('java.io.FileOutputStream')
let Bitmap = plus.android.importClass('android.graphics.Bitmap');
let WallpaperManager = plus.android.importClass('android.app.WallpaperManager');
let BitmapFactory = plus.android.importClass('android.graphics.BitmapFactory');
let Canvas = plus.android.importClass('android.graphics.Canvas');
let StaticLayout = plus.android.importClass('android.text.StaticLayout') //处理文字换行
let TextPaint = plus.android.importClass('android.text.TextPaint') //画笔
let Rect = plus.android.importClass('android.graphics.Rect'); //文字矩阵区域
let Layout = plus.android.importClass('android.text.Layout');
let Color = plus.android.importClass('android.graphics.Color');

function saveImage(path, newBitmap) {
	let filePath = new File(path);
	let fos = new FileOutputStream(filePath);
	newBitmap.compress(Bitmap.CompressFormat.PNG, 50, fos);
}
export function initWatermark(path) {

	let Main = plus.android.runtimeMainActivity();
	let wallpaperManager = WallpaperManager.getInstance(Main);
	plus.android.importClass(wallpaperManager);
	uni.getImageInfo({
		src: path,
		success: function(info) {
			let filePath = plus.io.convertLocalFileSystemURL(path)
			console.log(filePath)

			let bitmap = BitmapFactory.decodeFile(filePath)
			let newBitmap = Bitmap.createBitmap(info.width, info.height, Bitmap.Config.ARGB_8888);
			let canvas = new Canvas(newBitmap)
			canvas.drawBitmap(bitmap, 0, 0, null)
			let mPaint = new TextPaint()
			let textBounds = new Rect()
			console.log(Color)
			mPaint.setTextSize(40)
			mPaint.setAntiAlias(true) //抗锯齿
			mPaint.setColor(Color.parseColor('#e3e3e3'))
			mPaint.setAlpha(0x60)
			canvas.rotate(45);
			// 竖向
			for(let i = 0;i<20;i++){
				// 横向
				for(let x =0;x<10;x++){
					// canvas.translate(0, i*150)
					console.log(info.height / 2)
					canvas.drawText("王xx", (x * 400), (i * 100) - 400, mPaint); //绘制文字
					canvas.save()
				}				
			}
			canvas.restore()
			saveImage(path, newBitmap)
		}
	})
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗_都不做前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值