HarmonyOS 使用canvas进行图片水印操作
1.封装个图片水印方法,供H5使用。此方法中未使用 canvas 组件去做水印操作。而是使用 OffscreenCanvasRenderingContext2D 对象创建,进行图片水印操作。
2.其中需求为,将拍照/相册选中图片作为底图,在此底图的基础上,加上文字水印。
3.文字水印没问题。
4.底图绘制绘制不出来,曾经使用 ImageBitmap 和 PixelMap ,但是都无法将底图绘制上去, 最终输出的canvas 转成 base64 为 【data:image/png】
示例代码:
// localUrl 为唤起 拍照/相册选中的 图片地址( file://media/Photo/366/IMG_1723107392_351/IMG_20240808_165452.jpg )
// 尝试将 图片转成 ImageBitmap 对象
let imgBitmap :ImageBitmap = new ImageBitmap(localUrl)
let settings: RenderingContextSettings = new RenderingContextSettings(true)
let imageWidthVp = 300
let imageHeightVp = 400
let offContext: OffscreenCanvasRenderingContext2D = new OffscreenCanvasRenderingContext2D(imageWidthVp, imageHeightVp, settings)
offContext.fillStyle = 'rgb(0,0,255)'
offContext.fillRect(0, 0, imageWidthVp, imageHeightVp)
// 将相册/拍照中获取的图片作为底图。
offContext.drawImage(imgBitmap, 0, 0, imageWidthVp, imageHeightVp, 0, 0, imageWidthVp, imageHeightVp)
// 将canvas 转成 base64
let base64Str = offContext.toDataURL()
console.log('offContext toDataURL:' + offContext.toDataURL())
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何使用canvas添加水印
1549浏览 • 1回复 待解决
canvas如何实现水印效果
1114浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何使用Canvas组件在HarmonyOS中实现页面和图片的水印添加?
307浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何使用Canvas组件和OffscreenCanvas实现水印功能?
398浏览 • 1回复 待解决
HarmonyOS使用axios进行相册图片上传操作失败
864浏览 • 1回复 待解决
基于PhotoViewPicker对图片进行操作
1079浏览 • 1回复 待解决
HarmonyOS 用Canvas绘制文字水印,独立出全局水印方法,加上判断水印就无法生效
28浏览 • 1回复 待解决
HarmonyOS是否支持图片添加水印
456浏览 • 1回复 待解决
HarmonyOS拍照后图片添加水印
30浏览 • 1回复 待解决
HarmonyOS 在用户不需操作和预览的情况下,实现给图片添加水印
128浏览 • 1回复 待解决
如何操作canvas重新绘制
1272浏览 • 1回复 待解决
如何直接通过函数去编辑图片,比如pixelMap或者说给图片加水印文字这种操作
1618浏览 • 1回复 待解决
图片处理(加动态水印)
408浏览 • 1回复 待解决
HarmonyOS 水印相机、水印视频
176浏览 • 1回复 待解决
HarmonyOS 请问下如何将图片进行压缩操作
109浏览 • 1回复 待解决
HarmonyOS 如何给图片增加文字水印
169浏览 • 1回复 待解决
HarmonyOS 图片增加自定义水印
109浏览 • 1回复 待解决
HarmonyOS 拍照后的图片加水印
217浏览 • 1回复 待解决
HarmonyOS 从相册选取图片或者拍照,拿到图片进行缩放、压缩、裁剪操作
110浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用Canvas进行渐变填充?
217浏览 • 1回复 待解决
HarmonyOS 如何使用全局水印
106浏览 • 1回复 待解决
图片剪切,HarmonyOS提供图片剪切能力,并对截取后的资源进行操作。
1325浏览 • 1回复 待解决
HarmonyOS 如何给图片右下角增加文字水印
204浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何使用PixelMap进行图片的深拷贝操作并保持性能优化?
330浏览 • 1回复 待解决
HarmonyOS canvas如何绘制成图片导出
21浏览 • 1回复 待解决
可以参考如下方法,this.imageSize是图片的像素,this.screenWidth是屏幕的宽度像素,waterPostion是水印对应的坐标位置。waterPixelMap是水印view的组件截图,水印view可以拖动,然后根据位置生成最后的图片