H5调用手机摄像头和相册

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<script src="js/jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<h2 class="title-detail">
			图片描述
		</h2>
		<input type="hidden" id="picIndex" value="0">
		<div id='image-list' class="row image-list">
			<!-- <input id="upload_image" type="file" name="image" accept="image/*" /> -->

		</div>
		<div class="image-item space" onclick="showActionSheet()">
			<button class="image-up">拍照</button>
		</div>

	</body>
	<script src="js/jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		//图片显示
		function showPics(url, name) {
			//根据路径读取到文件 
			plus.io.resolveLocalFileSystemURL(url, function(entry) {
				entry.file(function(file) {
					var fileReader = new plus.io.FileReader();
					fileReader.readAsDataURL(file);
					fileReader.onloadend = function(e) {
						var picUrl = e.target.result.toString();
						var picIndex = $("#picIndex").val();
						var nowIndex = parseInt(picIndex) + 1;
						$("#picIndex").val(nowIndex);
						var html = '';
						html += '<div class="image-item " id="item' + nowIndex + '">';
						html += '<div class="image-close" onclick="delPic(this)">X</div>';
						html += '<div><img src="' + picUrl + '" class="upload_img" style="width:100%;height:100%;"/></div>';
						html += '</div>';
						html += $("#image-list").html();
						$("#image-list").html(html);
						console.log(html)
					}
				});
			});
		}
		//压缩图片  
		function compressImage(url, filename) {
			var name = "_doc/upload/" + filename;
			plus.zip.compressImage({
					src: url, //src: (String 类型 )压缩转换原始图片的路径  
					dst: name, //压缩转换目标图片的路径  
					quality: 40, //quality: (Number 类型 )压缩图片的质量.取值范围为1-100  
					overwrite: true //overwrite: (Boolean 类型 )覆盖生成新文件  
				},
				function(zip) {
					//页面显示图片
					showPics(zip.target, name);
				},
				function(error) {
					plus.nativeUI.toast("压缩图片失败,请稍候再试");
				});
		}

		//调用手机摄像头并拍照
		function getImage() {
			var cmr = plus.camera.getCamera();
			cmr.captureImage(function(p) {
				plus.io.resolveLocalFileSystemURL(p, function(entry) {
					compressImage(entry.toLocalURL(), entry.name);
				}, function(e) {
					plus.nativeUI.toast("读取拍照文件错误:" + e.message);
				});
			}, function(e) {}, {
				filter: 'image'
			});
		}
		//从相册选择照片
		function galleryImgs() {
			plus.gallery.pick(function(e) {
				var name = e.substr(e.lastIndexOf('/') + 1);
				compressImage(e, name);
			}, function(e) {}, {
				filter: "image"
			});
		}

      // 删除照片
		function delPic(a) {
			$(a).next().remove();
			$(a).remove()
		}





		//点击事件,弹出选择摄像头和相册的选项
		function showActionSheet() {
			var bts = [{
				title: "拍照"
			}, {
				title: "从相册选择"
			}];
			plus.nativeUI.actionSheet({
					cancel: "取消",
					buttons: bts
				},
				function(e) {
					if (e.index == 1) {
						getImage();
					} else if (e.index == 2) {
						galleryImgs();
					}
				}
			);



		}
	</script>
</html>

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔡定努

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值