18910140161

Flutter实现拍照功能

顺晟科技

2021-06-16 10:35:26

302

一、进入应用直接显示拍照页面

“import”包装:颤振/材料。dart ';

导入“包:人脸图像/相机。镖”;

导入"包:人脸图像/渲染图片。镖”;

void main()=RunApp(Myapp());

类应用扩展了状态窗口小部件{

//这个小部件是你的应用的根。

@覆盖

小部件构建(BuildContext上下文){

退货材料App(

主题:主题数据(主视图:颜色,蓝色,

home: MyHomePage(),

routes: String,WidgetBuilder{

相机' :(上下文)=camera(),

renderPicture':(上下文)=renderPicture(),

},

);

}

}

类我的主页扩展了StatefulWidget {

@覆盖

stateflewidget create state(){

//TODO:实现创建状态

return page();

}

}

类页面扩展了StateMyHomePage {

@覆盖

小部件构建(BuildContext上下文){

//TODO:实现构建

return camera();

}

}

二、在拍照页面,显示相机

导入“dart : io”;

导入"包: path _ provider/path _ provider。镖”;

“import”包装:颤振/材料。dart ';

导入"包:人脸图像/渲染图片。镖”;

导入“包:相机/摄像机。镖”;

导入”dart :异步”;

班级摄像机扩展了StatefulWidget {

@覆盖

stateflewidget create state(){

//TODO:实现创建状态

return page();

}

}

类页面扩展了Statecamera {

摄像机控制器;

@覆盖

void IntState(){

超级。initstate();

//初始化相机对象

//creatController();

}

@覆盖

void dispose() {

超级。dispose();

控制器?dispose();

}

@覆盖

小部件构建(BuildContext上下文){

//if (controller==null ||!控制器。价值。Isinitialized){

//返回container();

//}

返回脚手架(

//body : Aspectivo(

//aspectvio :控制器。价值。Aspectivo,

//儿童:相机视图(控制器)

//),

浮动动作按钮:浮动动作按钮(

儿童:图标,

onPressed:()异步{

最终路径=' ';

//最终路径=(等待getTemporaryDirectory()).路径${DateTime.now()} .png ';

//等待控制器。拍照(路径);

Navigator.push(context,MaterialPageRoute(

builder:(上下文)=renderPicture(picture:路径),

));

},

),

);

}

未来creatController()异步{

listcameradescriptioncamera=wait available camera();

控制器=摄像机控制器(摄像机[1],分辨率重置。高);

控制器。初始化().然后((_){

if(!已安装){

返回;

}

setState((){ });

});

}

//@覆盖

//Widget构建(BuildContext上下文){

////TODO:实现构建

//返回新的脚手架(

//backgroundColor:颜色。黄色,

//body:容器(

//边距:边缘嵌入。仅(顶部: 60,左侧: 30),

//child:列(

//children: Widget[

//平板按钮(

//child:文本('测试'),

//onpressed : _ click按钮,

//)

//],

//),

//)

//);

//}

//

//_clickButton() {

//Navigator.of(上下文)。推送(

//页面路由生成器(opaque : false,

//pageBuilder:(上下文、动画、二次信息){

//返回render picture();

//})

//);

//}

}

三、点击拍照,进入下个页面,显示照片

导入“dart : io”;

导入"包: dio/dio。镖”;

“import”包装:颤振/材料。dart ';

类渲染图片扩展了StatefulWidget {

renderPicture({Key key,这个。图片}): super(Key : Key);

最终字符串图片;

@覆盖

stateflewidget create state(){

//TODO:实现创建状态

return page();

}

}

类页面扩展了StaterenderPicture {

@覆盖

void IntState(){

超级。initstate();

//上传图片

uploadImage();

//getface message();

}

@覆盖

小部件构建(BuildContext上下文){

//TODO:实现构建

返回新的脚手架(

背景颜色:颜色。红色,

//body :图像。文件(文件(小部件。图片)),

);

}

_单击按钮(){

(上下文)的导航器. pop(false);

}

//上传图片

无效上传图像()异步{

//FormData FormData=new FormData。FromMap({

//'文件' :等待多部分文件。fromFile(widget.picture,filename: 'upload.png '),

//});

Dio=new Dio();

迪奥。选项。连接超时=3000 * 10;

response response=await dio。get(' http://www .xx:8080/face/index?name=上传。png ');

//响应响应=等待dio。发帖(' http://www .xx33608080/face/index ',数据: formData);

//print(' 1111111111111111 ');

if (response.statusCode==200) {

}

}

//获取人脸识别数据

void getFaceMessage()异步{

//Dio Dio 11=new Dio();

//响应响应=等待dio 11。get(' xx:8080/face/index?name=上传。png ');

//if(响应。statuscode==200){

//print(' 333333333333333 ');

//}

}

}

/*

*导入”dart : convert”;

导入”dart : ui”;

“import”包装:颤振/材料。dart ';

{1}

班级主页扩展了StatefulWidget {

@覆盖

State createState() {

//

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航