这篇文章主要介绍了Flutter如何实现图片滤镜效果,帮助大家更好的理解和学习使用Flutter,感兴趣的朋友可以了解下
本着学习的态度,研究了一下flutter里面的ColorFilter,字面意思翻译颜色过滤器,学习就是要举一反三,拓展思考就把这个功能做了一个简单的图片滤镜效果。(ps:图片有点没控制住,有点长) 效果如下:

ColorFilter 介绍
两种使用方式
const ColorFilter.mode(Color color, BlendMode blendMode)
const ColorFilter.matrix(List<double> matrix)
实现效果主要通过第一种方式, 首先创建一个MorningPainter类继承CustomPainter, 定义三个传入的变量
ui.Image img;
Color color;
String mode;
MorningPainter(this.img, this.color, this.mode);
@override
void paint(Canvas canvas, Size size) {
var paint = Paint();
if (color != Colors.white) {
BlendMode blendMode = BlendMode.clear;
switch (mode) {
case 'modulate':
blendMode = BlendMode.modulate;
break;
case 'difference':
blendMode = BlendMode.difference;
break;
case 'plus':
blendMode = BlendMode.plus;
break;
case 'lighten':
blendMode = BlendMode.lighten;
break;
default:
}
paint.colorFilter = ColorFilter.mode(color, blendMode);
}
}
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
选取图片
使用wechat_assets_picker进行图片的选择,选择之后进行转换
CustomPaint(
size: Size(_img.width.toDouble(), _img.height.toDouble()),
painter: MorningPainter(_img, currentColor, mode),
)
布局
最下方的颜色选择和模式选择,这个没什么可说的,使用简单的SingleChildScrollView配合Row使用就可以了。贴出其中一段代码
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
renderItem(Colors.yellow, '黄色'),
renderItem(Colors.red, '红色'),
renderItem(Colors.blue, '蓝色'),
renderItem(Colors.pink, '粉色'),
renderItem(Colors.orange, '橙色'),
renderItem(Colors.brown, '棕色'),
renderItem(Colors.grey, '灰色'),
],
),
),
最后的思考,学习是一件很有趣的事情, 特别是将所学到的知识运用起来,成就感很强烈。
以上就是Flutter实现图片滤镜效果的详细内容,更多关于Flutter 图片滤镜的资料请关注编程学习网其它相关文章!
织梦狗教程
本文标题为:Flutter实现图片滤镜效果
基础教程推荐
猜你喜欢
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
- Android中的webview监听每次URL变化实例 2023-01-23
- Flutter手势密码的实现示例(附demo) 2023-04-11
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Android多返回栈技术 2023-04-15
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- android studio按钮监听的5种方法实例详解 2023-01-12
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
