Flutter實現(xiàn)圖片濾鏡效果
本著學習的態(tài)度,研究了一下flutter里面的ColorFilter,字面意思翻譯顏色過濾器,學習就是要舉一反三,拓展思考就把這個功能做了一個簡單的圖片濾鏡效果。(ps:圖片有點沒控制住,有點長) 效果如下:

ColorFilter 介紹
兩種使用方式
const ColorFilter.mode(Color color, BlendMode blendMode) const ColorFilter.matrix(List<double> matrix)
實現(xiàn)效果主要通過第一種方式, 首先創(chuàng)建一個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實現(xiàn)圖片濾鏡效果的詳細內容,更多關于Flutter 圖片濾鏡的資料請關注腳本之家其它相關文章!
相關文章
Android使用vitamio插件實現(xiàn)視頻播放器
這篇文章主要為大家詳細介紹了Android使用vitamio實現(xiàn)視頻播放器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
Android 使用fast-verification實現(xiàn)驗證碼填寫功能的實例代碼
這篇文章主要介紹了Android 使用fast-verification實現(xiàn)驗證碼填寫功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
詳解Android短信的發(fā)送和廣播接收實現(xiàn)短信的監(jiān)聽
本篇文章主要介紹了Android短信的發(fā)送和廣播接收實現(xiàn)短信的監(jiān)聽,可以實現(xiàn)短信收發(fā),有興趣的可以了解一下。2016-11-11

