Flutter 之 IImage 图像反色处理
🌹 ⭐️ 🌹请首先看我 🌹 ⭐️ 🌹
- 下面介绍的功能都是有 iimage 库提供。
- 下面该功能需要
iimage ^ 0.0.4
以及以上可以使用。iimage
包的引入方式如下: 1. 可以手动引入idkit
包,就是将iimage ^ 0.0.4
放在项目的pubspec.yaml
文件的dependencies
模块下,然后执行flutter pub get
指令即可。 2. 可以使用后指令flutter pub add iimage
在项目根目录终端下执行即可。
[》跳过拾光记忆]
拾光记忆
简介: 针对 Flutter 项目资产管理的脚本服务。Fam 具有以下特点: 支持多种平台以及各平台无差异化、界面美观、功能齐全、快捷方便。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 针对 Flutter 多手指检测以及手势触发其他手势也触发的问题。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 这是让开发者更深入的了解 Dart 的枚举以及相关使用和方法。 推荐: ⭐️⭐️⭐️
简介: 这是让开发者更加便捷的实现单选、多选功能,无需你对数据处理。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 这是让开发者更深入的了解 Flutter 的两种指针的介绍以及相关使用和方法。 推荐: ⭐️⭐️⭐️
简介: 这是让开发者更加便捷的实现多种样式的轨道滑块,比如:轨道渐变色、触控笔悬浮标等。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 这是让开发者更加便捷的查看日志,通过日志能够分析变量当前数值以及业务逻辑走势,同时也能作为日志收集日志文本。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 这是让开发者更加便捷的实现图像添加图片类型的水印和文字类型的水印,支持水印多种样式的设定。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: IImage 是 IDKit 的其中一个功能模块,它提供了许多方便的图像处理方法,例如:尺寸调整、相对某点的矩形位置、大小调整、图像缩放、背景去除、真实内容尺寸获取以及真实内容图像获取等等。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 该篇主要介绍 Matrix4 的 16 个参数的含义。 推荐: ⭐️⭐️⭐️⭐️
简介: 该篇主要介绍 Flutter 中所有颜色的模式以及对应颜色的一些便捷方法有和LAB 颜色的支持以及颜色差异提供算法。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 该篇主要介绍 Flutter 中如何实现图像的油漆桶、填充功能或者图像泛洪算法。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 该篇主要介绍 Flutter 之 IImage 库中如何实现图像的镜像功能以及实现原理的介绍。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 该篇主要介绍 Flutter 之 IImage 库中如何实现图像的旋转功能以及实现原理的介绍。图像旋转不组件旋转而是图像元数据旋转。 推荐: ⭐️⭐️⭐️⭐️⭐️
简介: 该篇主要介绍 Flutter 之 IImage 库中如何实现图像的灰度或者去色功能以及实现原理的介绍。 推荐: ⭐️⭐️⭐️⭐️⭐️
一、简述
图像反色是一种基本的图像处理技术,它可以将图像中的亮度与颜色信息取反,从而改变图像的色彩和明暗信息,使得图像呈现出与原图完全相反的效果。以下是图像反色的用途:
-
色彩修正
通过反色处理,可以调整图像的色彩,使得原本较暗的颜色变得更加明亮,原本较亮的颜色变得更加暗淡,从而使图像的色彩更加鲜明。
-
色彩特效
反色处理还可以用来制作一些特殊的色彩效果,比如黑白电影效果、负片效果等,这些效果可以为图像带来新的感觉和视觉效果,使得图像更加生动。
-
色彩分离
反色处理还可以用来分离图像的色彩通道,例如对于 RGB 图像来说,反色处理可以将红、绿、蓝三个通道分别取反,从而产生三个颜色相反的图像,可以用来进行色彩分离和相关处理。
-
图像识别
反色处理还可以用于图像识别,例如在 OCR(光学字符识别)处理中,反色处理可以将文字与背景的颜色信息取反,从而使得文字更加清晰,从而提高识别效率。
总之,图像反色是一种非常简单但实用的图像处理技术,它可以帮助我们调整图像的色彩、明暗信息以及进行一些特殊的图像处理任务,具有广泛的应用前景。
二、 IImage 图像反色
在 Flutter 中 IImage 库提供了便捷的方法来实现图像的反色处理,你可以根据自己的业务需求选择合适的方法。IImage 提供了两个生成反色后的图像的方法,如下:
-
static Future<Image> invertFromUint32List({ required Uint32List uint32list, required int imageWidth, required int imageHeight, PixelFormat pixelFormat = PixelFormat.rgba8888, })
该方法是图像的像素集合进行反色处理,并以 pixelFormat 像素格式生成反色图像; 该方法的结果是
Future<Image>
类型。该方法的解释参数如下:- uint32list:图像进行反色处理的图像像素集合。
- imageWidth & imageHeight: 进行反色处理图像的宽与高。
- pixelFormat: 图像反色处理后,以什么像素格式生成反色图像。
-
static Future<Image?> invertFromImage({ required Image image, PixelFormat pixelFormat = PixelFormat.rgba8888, bool isDispose = false, })
该方法是图像直接反色处理,并返回反色处理后的图像,结果是
Future<Image?>
类型。该方法的参数介绍如下:- image: 要进行反色处理图像的对象。
- pixelFormat: 图像反色处理后,以什么像素格式生成反色图像。
- isDispose: 图像反色处理后是否删除原始图像,删除后原始图像(image)就不可再调用,否则会报错。
以及 IImage 还提供了图像像素集合进行发色处理的方法并返回新的像素集合,该方法如下:
-
static Uint32List invertUint32List({ required Uint32List uint32list, required int imageWidth, required int imageHeight, })
该方法是图像的像素集合进行反色处理,然后返回一个反色后图像的像素集合;我们可以使用图像反色后在进行其他业务处理的需求。该方法的参数介绍:
- uint32list:图像进行反色处理的图像像素集合。
- imageWidth & imageHeight: 进行反色处理图像的宽与高。
三、图像反色的原理
图像反色指将图像中的所有颜色取反,即用255 分别减去每个像素的RGB值,得到一幅颜色完全相反的图像。例如,黑色变成白色,红色变成青色,绿色变成品红色等。
注意: 图像的 A(alpha) 通道的值不做处理,还直接赋值到原来的通道。
四、图像反色实例
下面从两方面实验图像的反色处理,实验效果如下:
-
原图 =》 反色
-
灰度 =》 反色
上面实例在这里就不粘贴代码了,下面将给出该实例的项目地址 图像反色,欢迎大家下载和收藏以及分享。
注意: 该实例中使用到的一些其功能是由 idkit 库支持的;项目资源管理是由 fam 提供支持。
五、鼓励与支持
上面我们介绍了图像的反色处理, 目前市面上有很多方法来实现这个效果,我们要根据自己的业务需求来选择不同的方法来实现该效果。IImage 是 Flutter 图像处理库之一,希望大家支持与鼓励。如果你有想法,请给提出来;让我们一起来丰富 IImage 的内容。如果您对这方面感兴趣,感觉这功能还行;您的关注、评论、收藏、点赞、分享都是对我的认可和鼓励。
转载自:https://juejin.cn/post/7254397517969834021