5. Cordova照相机和阶段性分析

news/2025/1/8 20:38:34/

阶段性分析

第一阶段,入门。

第二阶段,到这里自我感觉算是差不多基本入门了,接下来打算做一些常用API练习,就比如这个插件主要用于拍照或使用图库文件,还有一些文件操作,IO之类的,计划一周左右实现。

第三阶段,对DB还有原生交互兼容性等进行深入研究,解决一些碰到的问题,此阶段不设时长,预计此阶段会有项目,所以切换到下班回去做。

第四阶段,如果时间还比较充裕的话,打算制作一款HybridAPP软件,在Android,IOS上都能跑通的(前提是有OSX环境),预计10个工作日左右吧。

Cordova照相机

用于拍照或使用图库文件

  • 添加插件

    cordova plugin add cordova-plugin-camera
  • 添加按钮

    <button id = "takePicture">TAKE PICTURE</button>
    <button id = "getPicture">TAKE PICTURE</button>
    <img id = "myImage" class="imgcenter" src="img/image.png"/>

    我这里有点小问题,照片会很大,超出屏幕了,用css设置一下

    .imgcenter{
    align-content: center;
    width:100%;
    height:90%;
    }
  • 添加事件监听器

    //拍照监听器
    document.getElementById("takePicture").addEventListener("click", cameraTakePicture);
    //图库监听器
    document.getElementById("getPicture").addEventListener("click",cameraGetPicture);
  • 添加功能

    //执行相机操作的函数,调用了成功和失败两个回调函数
    function cameraTakePicture() {navigator.camera.getPicture(onSuccess, onFail, {//照片质量quality: 50,//照片类型destinationType: Camera.DestinationType.DATA_URL//保存到相册saveToPhotoAlbum: true});
    //成功的回调函数,如果成功就更新到img
    function onSuccess(imageData) {var image = document.getElementById('myImage');image.src = "data:image/jpeg;base64," + imageData;}
    //如果失败就更新失败原因
    function onFail(message) {alert('Failed because: ' + message);}
    }
    //获取图库的回调函数,只是多了一个sourceType参数
    function cameraGetPicture(){navigator.camera.getPicture(onSuccess, onFail, { quality: 50,destinationType: Camera.DestinationType.DATA_URL,//下面这两个方法都可以获取到相册,这也是和获取相机唯一的区别//sourceType: Camera.PictureSourceType.PHOTOLIBRARYsourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM});function onSuccess(imageData) {var image = document.getElementById('myImage');image.src = "data:image/png;base64," + imageData;}function onFail(message) {alert('Failed because: ' + message);}}
  • 问题

    1. 我更新插件的时候提示cordova-plugin-compat无法更新,这时候卸载了再执行添加相机插件,cordova会自动更新最新版的compat插件
    2. 卸载compat组件的时候,如果提示有依赖,无法卸载,就把依赖的先卸载了,然后在卸载
    3. 当然这不是最优解决方案,因为刚配置环境的时候我没有卸载自带的,所以才会出现这些问题,导致compat无法更新,所以配置好环境的时候,如果有组件的话,先卸载了,用到哪些装哪些即可,毕竟这些库都会占内存
  • 展示

failed.png

!
![Uploading final_832690.png …]

final.png

getpicture.png

主要方法

参数说明
quality在0-100的范围内的图像质量。默认值是50
destinationTypeDATA_URL 或 0 返回base64编码字符串
FILE_URI 或 1 返回图像文件URI
NATIVE_URI 或 2 返回图像本地URI
sourceTypePHOTOLIBRARY 或 0 打开照片库
CAMERA 或 1 打开机摄像头
SAVEDPHOTOALBUM 或 2 打开保存相册
allowEdit允许图像编辑
encodingTypeJPEG 或 0 返回JPEG编码的图像
PNG 或 1 返回PNG编码的图像
targetWidth图像中的像素缩放宽度
targetHeight图像中的像素比例的高度
mediaTypePICTURE 或 0 只允许选择照片
VIDEO 或 1 只允许选择视频
ALLMEDIA 或 2 允许选择所有媒体类型
correctOrientation用于校正图象的方向
saveToPhotoAlbum用于将图像保存到相册
popoverOptions用于在IOS设置弹出的位置
cameraDirectionFRONT 或 0 前置摄像头
BACK 或 1 后置摄像头
ALLMEDIA所有媒体

http://www.ppmy.cn/news/845781.html

相关文章

linux下编写照相机应用程序,Linux下的图片编辑软件

首先还是先了解一下 Pinta 这款软件&#xff0c;Pinta 是一款 Pinta可在Ubuntu软件中心进行安装&#xff0c;但是版本已经很老旧了。 安装&#xff1a; ①稳定版本(建议使用这个版本&#xff0c;版本号&#xff1a;1.4)&#xff1a; sudo add-apt-repository ppa:pinta-maintai…

如何快速打造淘宝爆款

打造网店单品爆款 网络零售行业自2003年快速发展以来已经经历了15个年头。八年来很多人都在研究该如何更好地做好网店推广工作。 在传统的市场营销概念中&#xff0c;大家对推广的理解相当简单&#xff0c;一般都认为是让我们的产品广而告之&#xff0c;让更多人知道我们的服…

STM32照相机(OV2640)

一、BMP编码简介 BMP&#xff08;全称Bitmap&#xff09;是Window操作系统中的标准图像文件格式&#xff0c;文件后缀名为“.bmp”&#xff0c;使用非常广。它采用位映射存储格式&#xff0c;除了图像深度可选以外&#xff0c;一般不采用其他任何压缩&#xff0c;因此&#xf…

Python+树莓派+YOLO打造一款人工智能照相机

亚马逊刚刚推出了DeepLens 。这是一款专门面向开发人员的全球首个支持深度学习的摄像机&#xff0c;它所使用的机器学习算法不仅可以检测物体活动和面部表情&#xff0c;而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市&#xff0c;但智能摄像机的概念已经诞生…

软件工程——第13章软件项目管理知识点整理(完结)

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.管理的定义&#xff1f; 2.软件项目管理地位&#xff1f;&#xff08;重要性&#xff09; 3.软件项目管理过程从一组项目计划活动开始&#xff0c…

前端性能优化建议,24条

目录 一级目录1. 减少 HTTP 请求2. 使用 HTTP23. 使用服务端渲染4. 静态资源使用 CDN5. 将 CSS 放在文件头部&#xff0c;JavaScript 文件放在底部6. 使用字体图标 iconfont 代替图片图标7. 善用缓存&#xff0c;不重复加载相同的资源8. 压缩文件9. 图片优化10. 通过 webpack 按…

2021最前端最常见的面试题

假如给你一个复杂的功能让你实现&#xff0c;有什么思路写好这个功能&#xff1f; 解决问题之前需要理解问题&#xff0c;找出问题的主干 要求解的是什么&#xff1f; 需要实现的复杂功能是什么&#xff1f; 已知什么&#xff1f; 这个功能的实现逻辑什么是什么&#xff1f; 要…

Java高频面试题 - Java、Mysql、JUC、JVM、SSM

目录 不好使&#xff01;点右边小目录定位&#xff1b; JavaSE 什么是多态&#xff1f;★★ 重写和重载的区别&#xff1f;★★ 值传递和引用传递的区别&#xff1f; HashMap底层原理&#xff1f;★★ Vector、ArryList、LinkedList 的区别与联系★ Hashtable与HashMap的…