鸿蒙next中对图片的高斯模糊处理,主要是使用effectKit实现
针对的pixelMap,代码处理如下所示
import effectKit from '@ohos.effectKit'
import { image } from '@kit.ImageKit';
try {
let fd = fs.openSync(result, fs.OpenMode.READ_ONLY).fd;
const stat = fs.statSync(fd)
const buffer = new ArrayBuffer(stat.size)
fs.readSync(fd, buffer)
fs.closeSync(fd)
let img = image.createImageSource(buffer)
img.createPixelMap((e, data) => {
let hh = effectKit.createEffect(data)
hh.blur(37.0).getEffectPixelMap().then((result)=>{
this.bgImage = result;
})
})
} catch (e) {
}
这段示例是打开文件图片文件,读取arraybuffer通过imageKit的createImageSource和createPixelMap实现pixelMap的异步生成,然后通过effectkit的createEffect实现效果渲染,达到如下图的高斯模糊背景