Flutter實(shí)現(xiàn)圖片濾鏡效果
本著學(xué)習(xí)的態(tài)度,研究了一下flutter里面的ColorFilter,字面意思翻譯顏色過(guò)濾器,學(xué)習(xí)就是要舉一反三,拓展思考就把這個(gè)功能做了一個(gè)簡(jiǎn)單的圖片濾鏡效果。(ps:圖片有點(diǎn)沒(méi)控制住,有點(diǎn)長(zhǎng)) 效果如下:
ColorFilter 介紹
兩種使用方式
const ColorFilter.mode(Color color, BlendMode blendMode) const ColorFilter.matrix(List<double> matrix)
實(shí)現(xiàn)效果主要通過(guò)第一種方式, 首先創(chuàng)建一個(gè)MorningPainter類繼承CustomPainter, 定義三個(gè)傳入的變量
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進(jìn)行圖片的選擇,選擇之后進(jìn)行轉(zhuǎn)換
CustomPaint( size: Size(_img.width.toDouble(), _img.height.toDouble()), painter: MorningPainter(_img, currentColor, mode), )
布局
最下方的顏色選擇和模式選擇,這個(gè)沒(méi)什么可說(shuō)的,使用簡(jiǎn)單的SingleChildScrollView配合Row使用就可以了。貼出其中一段代碼
SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ renderItem(Colors.yellow, '黃色'), renderItem(Colors.red, '紅色'), renderItem(Colors.blue, '藍(lán)色'), renderItem(Colors.pink, '粉色'), renderItem(Colors.orange, '橙色'), renderItem(Colors.brown, '棕色'), renderItem(Colors.grey, '灰色'), ], ), ),
最后的思考,學(xué)習(xí)是一件很有趣的事情, 特別是將所學(xué)到的知識(shí)運(yùn)用起來(lái),成就感很強(qiáng)烈。
以上就是Flutter實(shí)現(xiàn)圖片濾鏡效果的詳細(xì)內(nèi)容,更多關(guān)于Flutter 圖片濾鏡的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android實(shí)現(xiàn)圖片異步加載及本地緩存
這篇文章主要介紹了Android實(shí)現(xiàn)圖片異步加載及本地緩存的相關(guān)資料,需要的朋友可以參考下2016-02-02Android使用vitamio插件實(shí)現(xiàn)視頻播放器
這篇文章主要為大家詳細(xì)介紹了Android使用vitamio實(shí)現(xiàn)視頻播放器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04Android 使用fast-verification實(shí)現(xiàn)驗(yàn)證碼填寫功能的實(shí)例代碼
這篇文章主要介紹了Android 使用fast-verification實(shí)現(xiàn)驗(yàn)證碼填寫功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04詳解Android短信的發(fā)送和廣播接收實(shí)現(xiàn)短信的監(jiān)聽(tīng)
本篇文章主要介紹了Android短信的發(fā)送和廣播接收實(shí)現(xiàn)短信的監(jiān)聽(tīng),可以實(shí)現(xiàn)短信收發(fā),有興趣的可以了解一下。2016-11-11