如何在保存图片时,给图片添加水印? HarmonyOS 鸿蒙Next
如何在保存图片时,给图片添加水印? HarmonyOS 鸿蒙Next 使用OffScreenCanvas离屏画布拿到图片源数据,在离屏画布上使用OffscreenCanvasRenderingContext2D的drawImage和fillText分别绘制图像和文水印文字。水印图片的保存可以使用安全控件SaveButton结合fs.write来实现。
具体实现可以参考Sample《水印案例》。
更多关于如何在保存图片时,给图片添加水印? HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于如何在保存图片时,给图片添加水印? HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next中,可以通过使用Image
和Canvas
组件来实现给图片添加水印的功能。首先,使用Image
组件加载原始图片,然后通过Canvas
组件在图片上绘制水印文本或图像。具体步骤如下:
- 加载原始图片:使用
Image
组件的src
属性加载需要添加水印的图片。 - 创建Canvas:在
Image
组件上叠加一个Canvas
组件,设置其大小与图片一致。 - 绘制水印:在
Canvas
组件中使用drawText
或drawImage
方法绘制水印文本或图像。 - 保存图片:使用
Canvas
组件的toDataURL
方法将带有水印的图片保存为新的图片文件。
代码示例:
// 加载图片
let img = new Image();
img.src = 'original.jpg';
// 创建Canvas
let canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
let ctx = canvas.getContext('2d');
// 绘制图片
ctx.drawImage(img, 0, 0);
// 绘制水印
ctx.font = '20px Arial';
ctx.fillStyle = 'rgba(255, 255, 255, 0.5)';
ctx.fillText('Watermark', 10, 30);
// 保存图片
let watermarkedImage = canvas.toDataURL('image/jpeg');