HarmonyOS 鸿蒙Next:怎么给图片渲染不同的颜色,使用colorFilter设置滤镜颜色过于复杂

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:怎么给图片渲染不同的颜色,使用colorFilter设置滤镜颜色过于复杂

怎么给图片渲染不同的颜色,使用colorFilter设置滤镜颜色太过于复杂

5 回复

目前只能使用colorFilter来设置滤镜颜色,可参考以下文档进行实现。

设计这个api的人是不是在炫技呀,如果要评选最差api,这个应该能排到第一

Image 组件设置 colorFilter 属性:
#FF483C
selectedColorFilter = new ColorFilter([
0, 0, 0, 0, 1, // 红色通道
0, 0, 0, 0, 0.282, // 绿色通道
0, 0, 0, 0, 0.216, // 蓝色通道
0, 0, 0, 1, 0// 透明度通道
]);
注意最后的偏移值是 通道色值/255 的百分比
如绿色通道48对应10 进制是72,对应偏移值计算0.282= 72/255

有快捷转化的api吗 

在HarmonyOS鸿蒙Next系统中,给图片渲染不同的颜色可以通过多种途径实现,其中colorFilter确实是一种方法,但如果你认为其设置过于复杂,可以考虑以下几种替代方案来实现图片颜色的渲染变换:

  1. 使用Shader:通过自定义BitmapShader,你可以将图片作为纹理,然后应用不同的颜色变换矩阵,达到颜色渲染的效果。这种方法较为灵活,但需要一定的图形编程基础。

  2. Canvas绘图:在Canvas上直接绘制图片,并通过Paint对象的setColor()setXfermode()方法来改变图片的颜色。例如,使用PorterDuffXfermode可以实现颜色叠加效果。

  3. 图像处理库:利用现有的图像处理库(如Glide、Picasso等,虽然这些库主要服务于Android,但部分功能在HarmonyOS上可能依然适用或有类似替代品),这些库通常提供了简单易用的API来改变图片颜色。

  4. SVG或矢量图:如果图片是矢量格式的(如SVG),那么直接修改其颜色属性会更为简单直接。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部