H5调用手机摄像头拍照后,怎样压缩再上传?


实际的压缩功能,就是利用canvas画布功能,将图片进行裁剪后保存图片的base64数据流,然后上传。


案例全部代码,示下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>关于html5中如何调用相机拍照并且压缩图片的示例详解</title>
</head>
<body><h2>关于html5中如何调用相机拍照并且压缩图片的示例详解</h2>照相机:<input type="file" capture=camera accept="image/*"><br /><br />相册:<input type="file" accept="image/*"><script type="text/javascript" language="JavaScript">$('input[type=file]').change(function(e) {var file = this.files[0];var mime_type=file.type;var orientation=0;if (file && /^image\//i.test(file.type)) {EXIF.getData(file,function(){orientation=EXIF.getTag(file,'Orientation');});var reader = new FileReader();reader.onloadend = function () {var width,height;var MAX_WH=800;var image=new Image();image.onload=function () {if(image.height > MAX_WH) {// 宽度等比例缩放 *=image.width *= MAX_WH / image.height;image.height = MAX_WH;}if(image.width > MAX_WH) {// 宽度等比例缩放 *=image.height *= MAX_WH / image.width;image.width = MAX_WH;}//压缩var quality=80;var cvs = document.createElement('canvas');cvs.width = width = image.width;cvs.height =height = image.height;switch (orientation) {case 6:case 8:cvs.width = height;cvs.height = width;break;}var context=cvs.getContext("2d");//解决ios图片旋转问题switch(orientation){//iphone横屏拍摄,此时home键在左侧case 3:// 180度向左旋转context.translate(width, height);context.rotate(Math.PI);break;//iphone竖屏拍摄,此时home键在下方(正常拿手机的方向)case 6:context.rotate(0.5 * Math.PI);context.translate(0, -height);break;//iphone竖屏拍摄,此时home键在上方case 8:// 逆时针旋转90度context.rotate(-0.5 * Math.PI);context.translate(-width, 0);break;}context.drawImage(image, 0, 0,image.width, image.height);dataURL = cvs.toDataURL('image/jpeg', quality/100);//获取识别结果...}image.src=dataURL;};reader.readAsDataURL(file);}else{alert("只能识别图片!")}});
</script></body>
</html>

以上就是关于“ H5调用手机摄像头拍照,如何压缩后上传 ” 的全部内容。

H5调用手机摄像头拍照,如何压缩后上传相关推荐

  1. H5调用手机摄像头,实时拍照上传(旧)

    H5调用手机摄像头,完成拍照,实时上传(旧) 项目开发中,偶尔会遇到网页中调用手机摄像头,通过相册选择或直接实时拍照的方式,完成图片上传的功能型需求. 今天,就通过一个小的案例,演示一下完整的实现流程 ...

  2. h5调用手机摄像头获取图片用于人脸识别

    h5调用手机摄像头获取图片用于人脸识别 1.安卓手机获取前置摄像头,并在video标签显示 注:navigator.mediaDevices.getUserMedia文档说明兼容Safari11,实测 ...

  3. 原生html调手机拍照,如何让HTML5调用手机摄像头拍照——实践就是一切

    原文:如何让HTML5调用手机摄像头拍照--实践就是一切 NanShan 小编将思路提供给了大家,学编程最重要的是实践,我这虽然有完善的代码,但是希望大家都可以自己写出属于自己的代码 HTML5 Th ...

  4. java 调用手机相册_微信公众号调用手机摄像头拍照和本地相册

    [实例简介] 微信公众号调用手机摄像头拍照和本地相册,上传服务器 [实例截图] [核心代码] 微信公众号调用手机摄像头拍照和本地相册(2) └── 微信公众号调用手机摄像头拍照和本地相册 └── 微信 ...

  5. Bmob+Luban(鲁班)压缩图片实现相册选择图片压缩后上传到Bmob后台Glide加载图片显示到本地

    源代码已上传CSDN:https://download.csdn.net/download/qq_16519957/11068345 因为本章需要跟前面的知识结合起来看所以就做了一个前面链接方便大家查 ...

  6. js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传

    js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传 图片上传目录 js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传 html代码 js代码 html代码 <input type ...

  7. html调起苹果手机摄像头_HTML5如何调用手机摄像头拍照实现方法介绍

    HTML5如何调用安卓手机摄像头拍照实现方法介绍.HTML5 The Media Capture API提供了对摄像头的可编程访问,可以直接用getUserMedia获得摄像头提供的视频流.其实实际上 ...

  8. html调起苹果手机摄像头_HTML5 调用手机摄像头拍照

    一.getUserMedia API简介 getUserMedia API为用户提供访问硬件设备媒体(摄像头.视频.音频.地理位置等)的接口,基于该接口,开发者可以在不依赖任何浏览器插件的条件下访问硬 ...

  9. weUI中调用手机摄像头拍照上传

    //图片上传 <div class="weui-cells weui-cells_form" style="margin-top: 0px;">&l ...

最新文章

  1. python怎么读取列表-Python如何获取列表(List)的中位数
  2. Java虚拟机JVM学习05 类加载器的父委托机制
  3. 矩形变弧度角_在上海做下颌角整形这些医生错过后悔都来不及,案例分享
  4. shell 中scp 和 ssh密码输入 --expect (转:http://blog.sina.com.cn/s/blog_8ad7d4ca01014lft.html)
  5. VB6里自动提交/自动填表的一种相对通用的方案
  6. android裁剪部分放大动画,【Android】图片放大被截了一部分之认识clipChildren属性的用法...
  7. Kettle详细使用教程
  8. OPPOR7Splus_官方线刷包_救砖包_解账户锁
  9. 电机-PID学习-位置速度串级控制
  10. 成功解决win7不能重装ie9的问题(重整版)
  11. 360站长工具-免费360链接提交主动推送收录工具自带收录排名蜘蛛查询
  12. 实现微信朋友圈下拉刷新的思路
  13. Merriam-Webster‘s Vocabular Builder ( BELL )
  14. 做一个专属于自己的图灵机器人
  15. C++实现TTS文字语音朗读Microsoft Speech SDK
  16. Node.js 的安装(电脑win7支持的版本)
  17. POJO VO PO DTO 和JavaBean
  18. java取上一个月_Java获取指定日期前一月(年)或后一月(年)
  19. python编程无师自通pdf_Python编程无师自通:专业程序员的养成 PDF下载
  20. 520|用Python绘制自定义照片墙

热门文章

  1. Windows下搭建HTK
  2. 揪出占用磁盘空间的罪魁祸首-企业生产实战
  3. 优化Flash中的3D模型加载
  4. Saltstack SLS文件解读
  5. PHP intval() 函数
  6. nohup命令让Linux程序永远在后台执行
  7. ADO.NET的最佳实践技巧
  8. 3t硬盘坏道检测需要多久_卤素检测报告需要多久更新一次
  9. SpringBoot版本:1.5.12.RELEASE 文件大小限制异常拦截网关zuul报错
  10. Product of Three Numbers(CF-1294C)