HarmonyOS 鸿蒙Next 图标颜色转换,把一个png图标从白色转换为黑色

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

HarmonyOS 鸿蒙Next 图标颜色转换,把一个png图标从白色转换为黑色

把一个png图标从白色转换为黑色,或者从黑色转换为白色,有没有什么方式?Image控件是否有对应功能? 

2 回复
 A: 可以使用图片colorfilter,链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-basic-components-image-V13#colorfilter9

参考如下代码:

Image($r('app.media.startIcon'))

          .colorFilter(this.filerArr)

          .width(100)

          .height(100)

          .objectFit(ImageFit.Contain)

          .onClick(()=>{

            //全黑

            this.filerArr = [0,  0,  0,  0,  0,

                             0,  0,  0,  0,  0,

                             0,  0,  0,  0,  0,

                             0,  0,  0,  1,  0 ]

            //白色

            // this.filerArr = [0,  0,  0,  0,  255,

            //                  0,  0,  0,  0,  255,

            //                  0,  0,  0,  0,  255,

            //                  0,  0,  0,  1,  0 ]

            //通用

            // this.filerArr = [0,  0,  0,  0,  r,

            //                  0,  0,  0,  0,  g,

            //                  0,  0,  0,  0,  b,

            //                  0,  0,  0,  1,  0 ]

          })

更多关于HarmonyOS 鸿蒙Next 图标颜色转换,把一个png图标从白色转换为黑色的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,进行图标颜色转换(例如将PNG图标从白色转换为黑色)通常涉及到图像处理技术,这可以通过编程方式或图像编辑软件来实现。以下是一个基于编程的简要说明,使用HarmonyOS的Canvas和Paint类来完成此任务:

  1. 加载原始图标:首先,通过资源管理器加载原始的白色PNG图标。

  2. 创建Canvas和Bitmap:创建一个与图标相同大小的Bitmap,并获取其Canvas对象。

  3. 设置Paint对象:配置Paint对象,设置颜色为黑色,以及可能的其他绘图属性(如抗锯齿)。

  4. 绘制图标:使用Canvas的drawBitmap方法,将原始图标绘制到新的Bitmap上,同时应用Paint对象以改变颜色。由于Paint设置了黑色,白色部分将被替换为黑色(注意,这仅适用于完全白色的像素,半透明或灰色像素将按比例着色)。

  5. 保存或显示转换后的图标:将处理后的Bitmap保存到文件或直接在UI中显示。

需要注意的是,如果图标包含渐变色或复杂背景,简单地将白色转换为黑色可能效果不佳。对于这种情况,可能需要更复杂的图像处理算法。

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

回到顶部