思路:
1、循环图片列表,批量添加水印。
2、与之对应的html页面也要魂环并添加水印。
代码实现:
<view style="width: 0;height: 0;overflow: hidden;position:fixed;left: 200%;">
<canvas v-for="(item,index) in canvesList" :key="index" :canvas-id="'firstCanvas' + index" class="canvas"
style="background-color: #FFFFFF;width:660rpx;height:780rpx;"></canvas>
</view>
addWatermark(imageUrls) {
let vm = this;
imageUrls.forEach((imageUrl, index) => {
const ctx = uni.createCanvasContext('firstCanvas' + index, this);
let times = '拍摄时间:' + formatDate('YY-MM-DD hh:mm:ss')
const InfoSync = uni.getSystemInfoSync()
let bili = (InfoSync.windowWidth / 375) * 1
ctx.fillStyle = "#FFFFFF"
ctx.fillRect(0, 0, 330 * bili, 520 * bili)
ctx.drawImage(imageUrl,25 * bili, 10 * bili, 280 * bili, 320 *
bili); // 绘制原始图片
ctx.setFillStyle("#333333")
ctx.setFontSize(14 * bili)
ctx.setTextAlign("bottom");
ctx.fillText(times, 25 * bili, 350 * bili)
ctx.draw(false, function(){
// 将canvas保存为图片文件
uni.canvasToTempFilePath({
canvasId: 'firstCanvas' + index,
success: (ress) => {
const tempFilePath = ress.tempFilePath;
vm.uploadImage(tempFilePath);
},
});
});
});
},