可以参考此demo:import { image } from '@kit.ImageKit' @Entry @Component struct Index { @State pixelMap: PixelMap | null = null aboutToAppear(): void { getContext(this).resourceManager.getMediaContent($r("app.media.startIcon")).then((data) => { let arrayBuffer = data.buffer.slice(data.byteOffset, data.byteLength + data.byteOffset) let imageSource: image.ImageSource = image.createImageSource(arrayBuffer); imageSource.getImageInfo((err, value) => { if (err) { return; } let opts: image.DecodingOptions = { editable: true, desiredSize: { height: value.size.height, width: value.size.width } }; imageSource.createPixelMap(opts, (err, pixelMap) => { // 这个回调的pixelMap就是当前图片的pixelMap let offScreenCanvas = new OffscreenCanvas(value.size.width, value.size.height) let OffScreenContext = offScreenCanvas.getContext("2d") OffScreenContext.drawImage(pixelMap, 0, 0, offScreenCanvas.width, offScreenCanvas.height) OffScreenContext.fillStyle = '#30000000' OffScreenContext.font = "50px" OffScreenContext.fillText("水印水印水印水印水印", 20, 30) // 获取新的PixelMap this.pixelMap = OffScreenContext.getPixelMap(0, 0, offScreenCanvas.width, offScreenCanvas.height) }) }) }) } build() { Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { Image(this.pixelMap).width(100).height(100) }.width('100%').height('100%') } }
可以参考此demo: