效果图:

相册


拍照

拍照后的照片显示在界面上

一丶 调用原生硬件Api实现照相机拍照和相册选择

导入第三方库:image_picker

拍照

_takePhoto() async {var image = await ImagePicker.pickImage(source: ImageSource.camera);
setState(() {_imgPath = image;
});
}

相册

_openGallery() async {var image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {_imgPath = image;
});
}

二丶 拍照上传到服务器

导入第三方库:上传图片到服务器

上传图片代码

_uploadData(imageFile) async{FormData formData = new FormData.from({"name": "wendux",
"age": 25,
'file': new UploadFileInfo(imageFile, "imageFileName.jpg")
});
var response = await Dio().post("http://jd.itying.com/imgupload", data: formData);
print(response);
}

完整代码:

import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:dio/dio.dart';
class ImagePickerPage extends StatefulWidget {@override
State<StatefulWidget> createState() {return _ImagePickerState();
}
}
class _ImagePickerState extends State<ImagePickerPage> {var _imgPath;@override
Widget build(BuildContext context) {return Scaffold(
appBar: AppBar(
title: Text("ImagePicker"),
),
body: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
_ImageView(_imgPath),
RaisedButton(
onPressed: _takePhoto,
child: Text("拍照"),
),
RaisedButton(
onPressed: _openGallery,
child: Text("选择照片"),
),
],
),
));
}
/*图片控件*/
Widget _ImageView(imgPath) {if (imgPath == null) {return Center(
child: Text("请选择图片或拍照"),
);
} else {return Image.file(
imgPath,
);
}
}
/*拍照*/
_takePhoto() async {var image = await ImagePicker.pickImage(source: ImageSource.camera,maxWidth: 400);
_uploadData(image); //上传
setState(() {_imgPath = image;
});
}
/*相册*/
_openGallery() async {var image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {_imgPath = image;
});
}
_uploadData(imageFile) async{FormData formData = new FormData.from({"name": "wendux",
"age": 25,
'file': new UploadFileInfo(imageFile, "imageFileName.jpg")
});
var response = await Dio().post("http://jd.itying.com/imgupload", data: formData);
print(response);
}
}

Flutter进阶第7篇: 调用原生硬件Api实现照相机拍照和相册选择 以及拍照上传到服务器相关推荐

  1. cocos creator 调用相机相册裁剪图片并上传到服务器

    大致思路就是creator里面js调用Java和object-c代码,调起系统相机相册,选取图库图片/拍照图片进行裁剪,然后转化为base64字符串,最后通过http post请求上传到服务器. Ja ...

  2. h5(网页) 调用相机拍照和相册,实现图片上传功能

    情景描述: 一个h5或者网页中需要上传图片功能,并且这个功能可以选择本地的图片或者拍照上传: 实现方法: 我们在网页中是可以直接调用手机的相机或者上传本地图片的,也就是说,我们是有使用本地图片文件和 ...

  3. vue 调用pc端本地摄像头、麦克风实现拍照、录视频、录音 并上传到服务器指定树文件夹

    vue 调用pc端本地摄像头.麦克风实现拍照.录视频.录音 并上传 自己写blog只是为了下次方便使用 过程确实很烦 ,自己摸索加各大网站cv查看 可以直接使用 1.调用摄像头拍照 录屏 首先是npm ...

  4. 微信公众号H5开发——调用相册和摄像头并上传服务器

    之前的文章介绍了关于微信JSSDK调用,下面介绍一下其中的一个最常用的功能--调用相册和摄像头 使用此功能之前先参考:微信JSSDK 在通过了config接口验签成功之后,我们就可以调用微信JSSDK ...

  5. Flutter实现相机拍照和相册选择

    Flutter实现相机拍照和相册选择 添加image_picker依赖:https://pub.dev/packages/image_picker/install 给权限(安卓) // 写入文件权限& ...

  6. 微信公众号调用手机相册并将图片上传到本地服务器

    最近有一个需求,用公众号调用本地相册,并将图片上传到本地服务器(不是微信服务器). 步骤一:引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq ...

  7. Flutter选择多张图片上传

    之前发过一篇上传多张图片的博客,那个是自己实现的,但是是一张一张上传最后页面上显示出来所有上传的图片,这篇文章介绍一下一次性选择多张图片并上传 首先引入依赖:multi_image_picker,这个 ...

  8. 【建站篇】如何将本地搭建的织梦站点上传到服务器空间?

    之前写过<dedeCMS+PHPStudy帮助新手实现在本地搭建织梦网站>的教程,主要讲解如何在自己电脑的本地环境中搭建织梦网站,特点是完全免费.易操作.易修改,因此比较适合初学者学习网站 ...

  9. Flutter调用原生相机和相册选择并使用Dio3上传到服务器

    用到的组件 dio: ^3.0.2image_picker: ^0.6.0+9 ios需要在info.list加入 <key>NSPhotoLibraryUsageDescription& ...

  10. Unity iOS 获取相册图片, 调用原生相机, 截屏并保存到相册

    原文链接 该Demo实现如下功能 1.从相册_照片 获取图片, 并贴在Image上 2.从相册_时刻 获取照片, 并贴在Image上 3.打开原生相机,拍照并把照片贴在Image上 4.截屏并保存到相 ...

最新文章

  1. sq服务启动后又停止_“本地计算机上的SQL SERVER服务启动后又停止了”解决方法...
  2. 高德地图2020最新版下载导航wince_导航定位错误致青城山严重拥堵,高德地图回应:已优化...
  3. 鸿蒙荣耀x10max,荣耀X10 Max有秘密武器:5G大屏手机能比4G还省电
  4. 160个Crackme037
  5. Ionic启动时提示:The Angular CLI requires a minimum Node.js version of eithor v10.13 or v12.0
  6. 最近公共祖先(Lowest_Common_Ancestors)
  7. Google开源Leak Finder——用于检测内存泄漏的JavaScript工具
  8. 交换机的基本原理配置(一)
  9. 【炼丹技巧】指数移动平均(EMA)【在一定程度上提高最终模型在测试数据上的表现(例如accuracy、FID、泛化能力...)】
  10. 【Java】我的第一个 JAVA 程序:Hello,world!
  11. 内存分配器ptmalloc,jemalloc,tcmalloc调研与对比
  12. 昔年浅谈电商服务业务应如何推广
  13. Linux 网络性能测试工具 iperf 的安装和使用
  14. Ogre实现简单地形
  15. 当我们点击一个文本域在IE下会发生的事件
  16. 使用python实现一个(文件版)简单的课程管理系统
  17. rog主板php,华硕主板有哪些系列 华硕主板各系列区别对比
  18. ubantu 安装jekins
  19. python精准识别图片文字
  20. aardio - 伪装进程测试

热门文章

  1. echart 折线统计图
  2. poj3083Children of the Candy Corn(dfs+bfs)
  3. Json 读写操作中含有中文时
  4. EMNLPICLR 多模态学习前沿分享
  5. AAAI2021 | 最新图神经网络研究进展解读
  6. 【python】59个Python使用技巧,从此你的Python与众不同(二)
  7. python生成词云教程(附带QQ聊天记录生成词云实战)
  8. 01 Nginx的高并发处理
  9. 时序算法—AR、MA、ARMA和ARIMA模型以及Auto ARIMA
  10. python之join()用法