APP开发-使用Vue3+vant+html5+ 实现相机拍照,选取相册图片,裁剪图片以及提取图片中的文字等功能
Posted L_不觉晓晓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP开发-使用Vue3+vant+html5+ 实现相机拍照,选取相册图片,裁剪图片以及提取图片中的文字等功能相关的知识,希望对你有一定的参考价值。
没用使用过html5+请参考另一篇博客:如何在Vue项目里面使用Html5+
一、实现图片的裁剪
1.1 在上个步骤当中,我们已经实现了拍照和相册里面选取图片,在最后的js方法当中,我们会将拍照或者从相册里面选择的图片的路径拿到,并且去调到裁剪的页面,在这个页面主要使用了Vue 3.0图片裁切插件:vue-picture-cropper,目前这个插件只支持vue3.x的版本。
相关网址:https://chengpeiquan.com/article/vue-picture-cropper.html
这个博客还是对这个插件的使用方式介绍的比较详细的,可以借鉴学习一下。
此页面是在上一个页面拍照或者选择图片,点击确认之后,进行路由跳转到本页面,它所携带的参数是根据图片路径转换为文件对象。
HTML代码
<template>
<div>
<vue-picture-cropper
:boxStyle="boxStyle"
:img="pic"
:options="options"
/>
<van-row >
<van-col @click="back" span="11">
<van-button plain color="#3BB3C2">
取消
</van-button>
</van-col>
<van-col @click="getImgae" span="11">
<van-button color="#3BB3C2">确认</van-button>
</van-col>
</van-row>
</div>
</template>
1.2 在这个页面当中主要有确认和取消两个事件,还有就是获取上个页面传过来的图片路径,确定按钮点击以后,会跳转到识别结果页面。
js代码
setup()
const proxy = getCurrentInstance();
const state = reactive(
pic: '',
// 裁剪区域的样式
boxStyle:
width: '100%',
height: '80%',
backgroundColor: '#f8f8f8',
margin: 'auto',
,
// 设定参数
options:
viewMode: 1,
dragMode: 'crop',
,
);
onMounted(async () =>
// 获取路由以及参数
const params = proxy.$router.currentRoute.value.query;
// 图片地址
// 将图片转换为base64
base64Img(params.imgUrl).then((res) =>
state.pic = res;
);
);
// 获取截图
const getImgae = () =>
proxy.$router.push(
path: '/scanResult',
query:
// 获取裁切后的 base64 结果,可用于本地预览展示
imgUrl: cropper.getDataURL(),
,
);
;
// 取消返回
const back = () =>
proxy.$router.go(-1);
;
return
...toRefs(state),
getImgae,
back,
;
,
在此页面点击确认以后,我们还是要把裁剪好的图片继续传递到下一个页面,此时路由的图片参数可以使用cropper实例的API方法getDataURL(),
以下图片是截取上面博客的内容:
页面效果图
二、下一篇讲述如何提取图片中的文字
以上是关于APP开发-使用Vue3+vant+html5+ 实现相机拍照,选取相册图片,裁剪图片以及提取图片中的文字等功能的主要内容,如果未能解决你的问题,请参考以下文章
APP开发-Vue3+Vant+Html5+ 实现管理应用缓存以及清除缓存
APP开发-Vue3+Vant+Html5+ 实现管理应用缓存以及清除缓存
APP开发-使用Vue3+vant+html5+ 实现相机拍照,选取相册图片,裁剪图片以及提取图片中的文字等功能
APP开发-使用Vue3+vant+html5+ 实现相机拍照,选取相册图片,裁剪图片以及提取图片中的文字等功能