Flutter簡潔實(shí)用的圖片編輯器的實(shí)現(xiàn)
介紹
一款簡潔實(shí)用的圖片編輯器,純dart開發(fā)。支持:涂鴉、旋轉(zhuǎn)&翻轉(zhuǎn)、馬賽克、添加文字,及自定義ui風(fēng)格。
功能演示
涂鴉

旋轉(zhuǎn)&翻轉(zhuǎn)

馬賽克

添加文字及刪除


安裝
添加依賴
dependencies: image_editor_dove: ^latest
import
import 'package:image_editor/flutter_image_editor.dart';
使用方法
獲取到原圖片后,將其傳給ImageEditor 如下:
Future<void> toImageEditor(File origin) async {
return Navigator.push(context, MaterialPageRoute(builder: (context) {
return ImageEditor(
originImage: origin,
//可空,支持自定義存儲位置(編輯后的圖片)
savePath: customDirectory
);
})).then((result) {
if (result is EditorImageResult) {
setState(() {
_image = result.newFile;
});
}
}).catchError((er) {
debugPrint(er);
});
}
返回結(jié)果
///The editor's result.
class EditorImageResult {
///寬度
final int imgWidth;
///高度
final int imgHeight;
///編輯后的圖片
final File newFile;
EditorImageResult(this.imgWidth, this.imgHeight, this.newFile);
}
拓展
UI定制
一些按鈕、滑塊等widget支持自定義,可通過繼承ImageEditorDelegate來自定義ui風(fēng)格:
class YourUiDelegate extends ImageEditorDelegate{
...
}
ImageEditor.uiDelegate = YourUiDelegate();
class ImageEditor extends StatefulWidget {
const ImageEditor({Key? key, required this.originImage, this.savePath}) : super(key: key);
...
///[uiDelegate] is determine the editor's ui style.
///You can extends [ImageEditorDelegate] and custome it by youself.
static ImageEditorDelegate uiDelegate = DefaultImageEditorDelegate();
@override
State<StatefulWidget> createState() {
return ImageEditorState();
}
}
保持相對繪制路徑
為了獲得更大的繪制區(qū)域,所以繪制面積并非為圖片顯示區(qū)域,這也就導(dǎo)致了旋轉(zhuǎn)的時候,相對位置會有變化。如果你需要保持相對,可以控制繪制區(qū)域與圖片顯示區(qū)域保持一致即可。
參考及其他文章
地址
github倉庫地址: image_editor_dove
插件地址:image_editor_dove
參考插件
signature | Flutter Package (flutter-io.cn)
到此這篇關(guān)于Flutter簡潔實(shí)用的圖片編輯器的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Flutter 圖片編輯器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android使用TabLayout+Fragment實(shí)現(xiàn)頂部選項(xiàng)卡
本文通過實(shí)例代碼給大家介紹了Android使用TabLayout+Fragment實(shí)現(xiàn)頂部選項(xiàng)卡功能,包括TabLyout的使用,感興趣的朋友參考下本文吧2017-05-05
Android可篩選的彈窗控件CustomFiltControl
這篇文章主要為大家詳細(xì)介紹了Android可篩選的彈窗控件CustomFiltControl,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
基于flutter?sound插件實(shí)現(xiàn)錄音與播放功能
這篇文章主要介紹了基于flutter?sound插件實(shí)現(xiàn)錄音與播放功能,介紹了如何錄音,如何播放本地和遠(yuǎn)程音頻文件,以及如何實(shí)現(xiàn)動畫,在錄制完音頻文件后如何上傳,這些都是我們平常使用這個功能會遇到的問題。在使用的過程中遇到的問題也有列出,需要的朋友可以參考下2022-05-05
Android實(shí)現(xiàn)淘寶倒計(jì)時功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)淘寶倒計(jì)時,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02

