博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Demo】HTML5 拍照上传
阅读量:5916 次
发布时间:2019-06-19

本文共 1746 字,大约阅读时间需要 5 分钟。

  hot3.png

本文主要讲解 手机浏览器 如何拍照

为什么会有这个需求

最近做一个项目要用到拍照然后上传照片,但是网页拍照一般都是用Flash做的,而我们主要是H5页面,如果在微信里面有权限就可以通过JSSDK调起摄像头拍照的。这里我们主要说下手机端浏览器如何调起摄像头

H5如何打开摄像头

不需要特别的支持,只需要一行代码就可以了

如何预览图

原理是用js获取input file的图像流,然后赋给img标签的src属性,然后再设置这个img的css,就能得到你要的效果了,代码如下

;var demo_h5_upload_ops = {    init:function(){        this.eventBind();    },    eventBind:function(){        var that = this;        $("#upload").change(function(){            var reader = new FileReader();            reader.onload = function (e) {                that.compress(this.result);            };            reader.readAsDataURL(this.files[0]);        });    },    compress : function (res) {        var that = this;        var img = new Image(),            maxH = 300;        img.onload = function () {            var cvs = document.createElement('canvas'),                ctx = cvs.getContext('2d');            if(img.height > maxH) {                img.width *= maxH / img.height;                img.height = maxH;            }            cvs.width = img.width;            cvs.height = img.height;            ctx.clearRect(0, 0, cvs.width, cvs.height);            ctx.drawImage(img, 0, 0, img.width, img.height);            var dataUrl = cvs.toDataURL('image/jpeg', 1);            $(".img_wrap").attr("src",dataUrl);            $(".img_wrap").show();            // 上传略            that.upload( dataUrl );        };        img.src = res;    },    upload:function( image_data ){        /*这里写上次方法,图片流是base64_encode的*/    }};$(document).ready( function(){    demo_h5_upload_ops.init();} );

实例演示

地址:   也可以手机扫描下图

测试结果报告

手机 UC浏览器 微信
IOS

支持拍照上传

支持图库选择上上传

支持拍照上传

支持图库选择上传

Android

支持拍照上传

支持图库选择上传

不支持拍照上传

支持图库选择上传

效果图

本人IOS 系统 亲自测试了UC浏览器和微信自带浏览器 完美兼容

600

600

600

原文地址:
标签:               

智能推荐

转载于:https://my.oschina.net/54php/blog/757185

你可能感兴趣的文章
【转载】强大的命令行工具wmic
查看>>
如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
查看>>
云越发展,锁定问题就会越严重?
查看>>
用户访问网页的流程原理
查看>>
write back vs write through
查看>>
各种链接
查看>>
我的友情链接
查看>>
《Spring实战》第四版读书笔记 第一章 Spring之旅
查看>>
那些年,一起学的Java 2-4
查看>>
RedHat已更改其开源许可规则
查看>>
redis集群搭建
查看>>
LNMP架构 (Ⅱ)——nginx相关配置、nginx代理
查看>>
神级python程序员只需要一个公众号,再也不会错过重要资讯
查看>>
双十一流量洪峰 支撑阿里核心业务的云数据库揭秘
查看>>
OSChina 周一乱弹 ——程序员跟产品经理撕逼必须掌握的套路
查看>>
Linux系统启动流程详解
查看>>
Magento(CE1.X)自带模块解析五
查看>>
Factory Method模式 (一)
查看>>
代码整洁之道-第9章-单元测试-读书笔记
查看>>
C++ ssd5 12 optional exercise2
查看>>