移动端拍照实现

HTML:

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header" style="height:54px;">
<h4 class="modal-title" id="myModalLabel">拍照<input id="takepicture" type="file" accept="image/*" capture="camera" style="opacity:0;width:100%;margin-top:-30px;"></h4>
</div>

<div class="modal-body"  style="height:54px;">从手机相册选择<img id="pic" src=""><input id="upload" name="file" accept="image/*" type="file" style="display:none;width:100%;margin-top:-30px;" /></div>
</div>
<div class="modal-content content-a" data-dismiss="modal" aria-hidden="true">取消</div>
</div>

</div>

JS:已经实现

<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="js/mui.min.js"></script>
<script type="text/javascript" src="js/layer.js" ></script>
<script type="text/javascript" src="js/content.js" ></script>
<script src="js/city-picker.data.js"></script>
<script src="js/city-picker.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript">
//拍照
var takePictureOnclick = function() {
var takePicture = document.getElementById('takepicture');
takePicture.click();
}
var takePicture = document.getElementById('takepicture');
var takePictureUrl = function() {
takePicture.onchange = function(event) {
var files = event.target.files,
file;
if(files && files.length > 0) {
file = files[0];
try {
var URL = window.URL || window.webkitURL;
var blob = URL.createObjectURL(file);   // 获取照片的文件流
compressPicture(blob);   // 压缩照片
} catch(e) {
try {
var fileReader = new FileReader();
fileReader.onload = function(event) {     // 获取照片的base64编码
compressPicture(event.target.result);   // 压缩照片
};
fileReader.readAsDataURL(file);
} catch(e) {
alert(common.MESSAGE.title.error, '拍照失败,请联系客服或尝试更换手机再试!');
}
}
}
}
}();
var compressPicture = function(blob) {
var quality = 0.5,
image = new Image();
image.src = blob;
image.onload = function() {
var that = this;
// 生成比例
var width = that.width,
height = that.height;
width = width / 4;
height = height / 4;
// 生成canvas画板
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
canvas.width = width;
canvas.height = height;
ctx.drawImage(that, 0, 0, width, height);
// 生成base64,兼容修复移动设备需要引入mobileBUGFix.js
var imgurl = canvas.toDataURL('image/jpeg', quality);
// 修复IOS兼容问题
if(navigator.userAgent.match(/iphone/i)) {
var mpImg = new MegaPixImage(image);
mpImg.render(canvas, {
maxWidth: width,
maxHeight: height,
quality: quality
});
imgurl = canvas.toDataURL('image/jpeg', quality);
}
// 上传照片
uploadPicture(imgurl);
};
};
//从手机相册中选择
$(function() {
$("#pic").click(function() {
$("#upload").click(); //隐藏了input:file样式后,点击头像就可以本地上传
$("#upload").on("change", function() {
var objUrl = getObjectURL(this.files[0]); //获取图片的路径,该路径不是图片在本地的路径
if(objUrl) {
$("#ImgPr").attr("src", objUrl); //将图片路径存入src中,显示出图片
}
});
});
});
//建立一個可存取到該file的url
function getObjectURL(file) {
var url = null;
if(window.createObjectURL != undefined) { // basic
url = window.createObjectURL(file);
} else if(window.Url != undefined) { // mozilla(firefox)
url = window.Url.createObjectURL(file);
} else if(window.webkitURL != undefined) { // webkit or chrome
url = window.webkitURL.createObjectURL(file);
}
return url;
}



var userid = window.localStorage["userId"];
function jz() {
$.post(URL + "user/queryUser", { "user.user_id": userid }, function(data) {
$("#name").val(data.user_name);
$("#account").html(data.user_account);
$("#idnum").val(data.user_idnumber);
var are = data.user_area;
if(null != are){
var arr = are.split("/");
$("#city-picker3").citypicker("reset");
            $("#city-picker3").citypicker("destroy");
            $("#city-picker3").citypicker({
              province: arr[0],
              city: arr[1],
              district: arr[2]
            });
}
});
}
function tj() {
var name = $("#name").val();
var area = $("#city-picker3").val();
var idnum = $("#idnum").val();
var par = { "user.user_id": userid, "user.user_name": name, "user.user_area": area, "user.user_idnumber": idnum };
$.post(URL + "user/update", par, function(data) {
console.log(data);
if("01" == data.resultCode) {
parent.layer.open({
time:2000,
content: "修改成功!",
end: function() {
window.location.href = "personal.html";
}
});
} else {
layer.alert("修改失败!");
}
});
}
</script>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值