HarmonyOS鸿蒙Next中关于获取到的图片,如何在图片上添加时间水印
HarmonyOS鸿蒙Next中关于获取到的图片,如何在图片上添加时间水印 在拍照或选择一张照片后,如何在图片上添加一个时间水印,没有找到相应的API
12 回复
这个虽然可以但也太难了,能像android 位图一样就好了,
你这个相当于是在底层添加的水印,不是我想要的,我是想在直接在照片上添加一个时间水印,
如果只是显示时添加,可考虑通用属性“浮层”, 可加文字在图片表面:
.overlay({value: string, options?: {align?: Alignment, offset?: {x?: number, y?: number}})
需求是在照片上打个时间水印,android好做,换成鸿蒙还不知道怎么弄。
这个不会修改原图,但可以再利用componentSnapshot.get
生成新的图片
参考:https://developer.huawei.com/consumer/cn/forum/topic/0208150740444982087?fid=0109140870620153026
没有这样的API ,但是可以把图片上传到阿里云OSS上去,然后使用的时候通过拼接参数实现水印。
https://www.alibabacloud.com/help/zh/oss/user-guide/add-watermarks
在HarmonyOS鸿蒙Next中,可以通过Image
和Canvas
组件在图片上添加时间水印。首先,使用Image
组件加载图片,然后通过Canvas
绘制时间文本。具体步骤如下:
- 使用
Image
组件加载图片。 - 创建
Canvas
对象,并设置其大小与图片一致。 - 使用
Canvas
的drawText
方法绘制当前时间文本,设置字体、颜色和位置。 - 将绘制后的
Canvas
内容保存为新的图片。
示例代码:
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(30);
canvas.drawText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), 10, 50, paint);