当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
27 Star 232 Fork 144

OpenHarmony-TPC/ImageKnife
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

gpu_transform

该module通过获取图片的buffer数据,使用openGL、着色器(Shader),操作GPU,达到图片滤波器的效果。

本项目基于开源库 android-gpuimage 进行OpenHarmony的自研版本:

下载安装

    ohpm install @ohos/gpu_transform

例子说明

    //获取像素点数据
    let bufferData = new ArrayBuffer(bitmap.getPixelBytesNumber());
    await bitmap.readPixelsToBuffer(bufferData);
    
    // 使用GPUImageVignetterFilter过滤器
    let filter = new GPUImageVignetterFilter();
    filter.setImageData(bufferData, targetWidth, targetHeight);
    filter.setVignetteCenter(this.centerPoint);
    filter.setVignetteColor(this.vignetteColor);
    filter.setVignetteStart(this.vignetteSpace[0]);
    filter.setVignetteEnd(this.vignetteSpace[1]);
    
    //获取经过gpu处理的像素点数据
    let buf = await filter.getPixelMapBuf(0, 0, targetWidth, targetHeight)
    
    //像素点数据写入
    bitmap.writeBufferToPixels(buf);
    

滤波器类型说明

滤波器类型 描述
GPUImageBlurFilter 模糊滤波器
GPUImageBrightnessFilter 亮度滤波器
GPUImageColorInvertFilter 颜色反转滤波器
GPUImageContrastFilter 对比度滤波器
GPUImageGrayscaleFilter 灰色滤波器
GPUImageKuwaharaFilter 桑原滤波器
GPUImagePixelationFilter 马赛克滤波器
GPUImageSepiaToneFilter 乌墨色滤波器
GPUImageSketchFilter 素描滤波器
GPUImageSwirlFilter 扭曲滤波器
GPUImageToonFilter 动画滤波器
GPUImageVignetterFilter 装饰滤波器

目录结构

/gpu_transform/src/main
    --cpp
        --common         # napi公共方法封装
        --constant       # 顶点、片元着色器
        --napi           # native入口
        --render         # 绘制
        --util           # 工具层
    --ets
        --filter         # 各种滤波器
        --gl             # native的js层
        --interface      # 接口

约束与限制

在下述版本验证通过:

  • DevEco Studio: (5.0.3.122), SDK: API12 (5.0.0.17)

  • DevEco Studio: (4.1.3.414), SDK: API11 (4.1.0.56)

贡献代码

使用过程中发现任何问题都可以提 issue 给我们,当然,我们也非常欢迎你给我们发 PR

开源协议

本项目基于 Apache License 2.0 ,请自由的享受和参与开源。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openharmony-tpc/ImageKnife.git
git@gitee.com:openharmony-tpc/ImageKnife.git
openharmony-tpc
ImageKnife
ImageKnife
master

搜索帮助