实现思路:从相册中算选择图片,将图片展示到UI界面,利用核心方法drawImage将要添加的水印画到图片上,然后将图片保存。
1、从相册中选取图片,添加水印,并返回添加水印后的图片保存路径
async pickerAcvtor(waterStr: string[]) {
// 实例化选择参数对象
const options = new picker.PhotoSelectOptions()
options.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE
options.maxSelectNumber = 1
// 实例化选择器对象
const pickerView = new picker.PhotoViewPicker()
let res = await pickerView.select(options)
// 判断用户取消了选择图片,则组织下面代码的继续运行
if (res.photoUris.length === 0) {
promptAction.showToast({ message: "用户取消图片选择" })
return
}
// 准备好图片的完整路径
let ext = 'jpg'
let fileName = Date.now().toString()
let cacheDir = getContext().cacheDir
let fullPath = cacheDir + '/' + fileName + '.' + ext
// 利用fileIo拷贝图片
let file = fileIo.openSync(res.photoUris[0], fileIo.OpenMode.READ_ONLY)
fileIo.copyFileSync(file.fd, fullPath)
this.imgPath = fullPath
addWaterMarkManager.addWaterImage(this.imgPath, waterStr, this.fillColor)
.then((pixelMap?: image.PixelMap) =>