本人测试目测是图片过大导致无法识别,经过压缩处理后扫描成功,经过尝试,450k以下基本可以成功,附上代码如下
// 从相册选择二维码
chooseImgFromLocal () {
const vm = this
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album'],
success (obj) {
const fileObj = obj.tempFiles[0]
vm.doCompress(fileObj.path).then(src => {
plus.barcode.scan(src, vm.scanSuccess, vm.scanError, [plus.barcode.QR])
}).catch(e => {
vm.scanError(e)
})
}
})
},
// 对图片进行压缩
doCompress (path) {
const vm = this
return new Promise((resolve, reject) => {
const compressFunc = (quality, width) => {
if (quality < 0) {
reject(new Error('压缩失败'))
return
}
plus.zip.compressImage({
src: path,
dst: '_doc/temp.png',
overwrite: true,
format: 'png',
quality: quality 100,
width: width
},
function (obj) {
// 图片大小限制在450k
if (obj.size > 450 1024) {
compressFunc(quality - 0.1, width - 50)
} else {
resolve(obj.target)
}
},
function (err) {
reject(new Error('压缩失败'))
})
}
compressFunc(0.8, 400)
})
}
7 个回复
5***@qq.com - vue开发移动app
同问,求解
p***@sina.com
是啊,很奇怪,有时候ios也会,同一个二维码,如果移动二维码位置,有时候又可以扫描到
1***@qq.com
同问,求解
zerolelouch
同问,求解
1***@qq.com
可以试试 https://blog.csdn.net/qq_37212970/article/details/94553142
2019-07-15 09:37
崇子77
本人测试目测是图片过大导致无法识别,经过压缩处理后扫描成功,经过尝试,450k以下基本可以成功,附上代码如下
// 从相册选择二维码
chooseImgFromLocal () {
const vm = this
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album'],
success (obj) {
const fileObj = obj.tempFiles[0]
vm.doCompress(fileObj.path).then(src => {
plus.barcode.scan(src, vm.scanSuccess, vm.scanError, [plus.barcode.QR])
}).catch(e => {
vm.scanError(e)
})
}
})
},
// 对图片进行压缩
doCompress (path) {
const vm = this
return new Promise((resolve, reject) => {
const compressFunc = (quality, width) => {
if (quality < 0) {
reject(new Error('压缩失败'))
return
}
plus.zip.compressImage({
src: path,
dst: '_doc/temp.png',
overwrite: true,
format: 'png',
quality: quality 100,
width: width
},
function (obj) {
// 图片大小限制在450k
if (obj.size > 450 1024) {
compressFunc(quality - 0.1, width - 50)
} else {
resolve(obj.target)
}
},
function (err) {
reject(new Error('压缩失败'))
})
}
compressFunc(0.8, 400)
})
}
7***@qq.com - mvp
我也遇到了,不知道各位有没有解决了,可以帮忙解答一下吗
崇子77
我上面给了方案呀~
2020-01-21 16:53
6***@qq.com
同问,求解呀,,急
崇子77
我上面给了方案呀~
2020-01-21 16:53