1、需求描述

  实现一个调用摄像头拍照,或者直接打开本地图库选择照片,然后替换App中图片的功能

2、准备

  1) 安装ng-cordova

    进入到ionic工程目录,使用bower工具安装,

    bower install ngCordova

    然后将ng-cordova.js 或者 ng-cordova.min.js 添加到index.html 中的 cordova.js 引用之前

    ...

    <script src="lib/ngCordova/dist/ng-cordova.js"></script>

    <script src="lib/cordova.js></script>

    ...

    在angular中添加ngCordova依赖

       angular.module('myApp',['ngCordova'])

  2) 安装 $cordovaCamera

    cordova plugin add cordova-plugin-camera

    在controller中添加依赖

    .controller('appControl',['$cordovaCamera']){

      ...

    }

  3)安装$cordovaImagePicker

    cordova plugin add cordova-plugin-image-picker      

    在controller中添加依赖

    .controller('appControl',['$cordovaImagePicker']){

      ...

    }

3、代码实现

  

 ("deviceready",function(){
2   //拍照
3   var options={
4     quality:50, //保存图像的质量,范围0-100
5     destinationType:Camera.DestinationType.DATA_URL, //返回值格式:DATA_URL=0,返回作为base64编码字符串;FILE_URL=1,返回图像的URL;NATIVE_RUL=2,返回图像本机URL
6     sourceType:Camera.PictureSourceType.CAMERA, //设置图片来源:PHOTOLIBRARY=0,相机拍照=1,
7     allowEdit:true, //选择图片前是否允许编辑
8     encodingType:Camera.EncodingType.JPEG, //JPEN = 0,PNG = 1
9     targetWidth:100, //缩放图像的宽度(像素)
10     targetHeight:100, //缩放图像的高度(像素)
11     popoverOptions:CameraPopoverOptions, //ios,iPad弹出位置
12     saveToPhotoAlbum:true, //是否保存到相册
13     correctOrientation:true //设置摄像机拍摄的图像是否为正确的方向
14   };
15   $cordovaCamera.getPicture(options).then(function(imageData){
16     $scope.imageSrc="data:image/jpeg;base64,"+imageData;
17   },function(err){
    //error
19   });
20 },false);
 document.addEventListener("deviceready",function(){
  var options = {
    maximumImagesCount: 10, //最大选择图片数量
    width: 800, //筛选宽度:如果宽度为0,返回所有尺寸的图片
    height: 800, //筛选高度:如果高度为0,返回所有尺寸的图片
    quality: 80 //图像质量的大小,默认为100
  };
  $cordovaImagePicker.getPictures(options).then(function (results) {
    for (var i = 0; i < results.length; i++) {
      alert('Image URI: ' + results[i]);
    }
  },function(error) {
    // error getting photos
  });
},false);

ng-cordova 手机拍照或从相册选择图片的更多相关文章

  1. 浅谈Android中拍照、从相册选择图片并截图相关知识点

    前言 我们在Android开发中经常会需要使用相机或者从相册中选取图片的情况,今天就把这里面相关的知识点总结下,方便以后开发的时候使用. 1.相机拍照并可自定义截图功能 我们先来看如何使用Intent ...

  2. HTML5 Plus 拍照或者相册选择图片上传

    HBuilder+HTML5 Plus+MUI实现拍照或者相册选择图片上传,利用HTML5 Plus的Camera.Gallery.IO.Storage和Uploader来实现手机APP拍照或者从相册 ...

  3. [Android实例教程] 教你如何拍照+相册选择图片+剪裁图片完整实现

    [Android实例教程] 教你如何拍照+相册选择图片+剪裁图片完整实现 今天做Android项目的时候要用到图片选择,要实现拍照获取图片和从相册获取图片,并且要求在获取完之后可以裁剪,试了很多方法之 ...

  4. Android之修改用户头像并上传服务器(实现手机拍照和SD卡选择上传)

    写了这么多个的APP,最近才把他这个功能写上来,就抽取其中的用户修改头像的相关操作这个功能写了这篇博客,来与大家分享,希望对你有所帮助. 案例包含了: Xutil图片上传 拍照和SD卡选择图片 图片缓 ...

  5. android 拍照和从相册选择组件

    android 拍照及从相册选择组件 单独封装到一个 activity 中便于更好的复用 拍照或从相册选择成功后使用 EventBus 发出广播回传图片路径,和调用者充分解耦合 根据传入参数支持裁剪和 ...

  6. 微信小程序:从本地相册选择图片或使用相机拍照。

    wx.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照. OBJECT参数说明: 示例代码: wx.chooseImage({ count: 1, // 默认9 sizeTyp ...

  7. IOS研究院之打开照相机与本地相册选择图片(六)

    原创文章如需转载请注明:转载自雨松MOMO程序研究院本文链接地址:IOS研究院之打开照相机与本地相册选择图片(六) Hello 大家好 IOS的文章好久都木有更新了,今天更新一篇哈. 这篇文章主要学习 ...

  8. android --拍照,从相册获取图片,兼容高版本,兼容小米手机

    前几天做项目中选择图片的过程中遇到高版本和小米手机出现无法选择和崩溃的问题,现在记录下来,后面出现同类问题,也好查找 1,定义常量: private static final int TAKE_PIC ...

  9. Ionic3学习笔记(十二)拍照上传图片以及从相册选择图片上传

    本文为原创文章,转载请标明出处 目录 安装插件 导入 app.module.ts 创建 provider 更多 效果图 1. 安装插件 终端运行: ionic cordova plugin add c ...

随机推荐

  1. nodejs字符与字节之间的转换

    new Buffer("Hello World").toString("base64"); /* yields SGVsbG8gV29ybGQNCg== */ ...

  2. 队列的存储结构和常见操作(c 语言实现)

    一.队列(queue) 队列和栈一样,在实际程序的算法设计和计算机一些其他分支里,都有很多重要的应用,比如计算机操作系统对进程 or 作业的优先级调度算法,对离散事件的模拟算法,还有计算机主机和外部设 ...

  3. 使用 CSS3 & jQuery 制作漂亮的书签动画

    今天的教程是关于创建使用 CSS 旋转变换和 JavaScript 制作动画书签效果.我们的想法是展现出样书状结构,使单一的色板或列表点击切换.当点击其中一项,我们就会旋转以显示所选择的项目. 在线演 ...

  4. [工具]Serv-U配置教程

    引言 最近项目中需要用到ftp服务器,将文件放在ftp服务器上,就在网上查了一下,学习了一下Serv-u的配置及使用,这里也将如何配置的做一记录. Serv-u简介 Serv-U 是目前众多的FTP ...

  5. 使用ajax提交form表单,包括ajax文件上传

    前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的aja ...

  6. d

    1.sql题1表名:成绩表姓名   课程       分数张三     语文       81张三     数学       75李四     语文       56李四     数学       9 ...

  7. Ionic2学习笔记(0):HelloWorld

    作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5529153.html 操作系统: Windows 10 环境配置: Node.js Java SE D ...

  8. LINQ to SQL语句(4)之Join

    适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等.对各个表之间的关系,就用这些实现对多个表的操作. 说明:在Join操作中,分别为Join(Join查询), SelectMany(Sel ...

  9. C# 委托和事件(二):使用.Net框架中的EventArgs和EventHandler

    前面一篇里提到事件是通过委托来进行关联的,而委托是可以带各种各样的参数的,其中就可以用事件参数(EventArgs),同时,也可以用.Net框架里边提供的一个委托EventHandler来Handle ...

  10. 15天玩转redis —— 第二篇 基础的字符串类型

    我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞给char[]数组的. 如果你真的这么想的话 ...