提交 253a0156 编写于 作者: D DCloud_LXH

fix(App): chooseImage 拍照添加压缩

上级 2ded4027
......@@ -7,7 +7,8 @@ import {
} from '../../bridge'
import {
warpPlusErrorCallback
warpPlusErrorCallback,
getFileName
} from '../util'
import {
......@@ -27,6 +28,24 @@ function getFileInfo (filePath) {
})
}
function compressImage (tempFilePath) {
const dstPath = `${TEMP_PATH}/compressed/${Date.now()}_${getFileName(tempFilePath)}`
return new Promise((resolve) => {
plus.nativeUI.showWaiting()
plus.zip.compressImage({
src: tempFilePath,
dst: dstPath,
overwrite: true
}, () => {
plus.nativeUI.closeWaiting()
resolve(dstPath)
}, () => {
plus.nativeUI.closeWaiting()
resolve(tempFilePath)
})
})
}
export function chooseImage ({
count,
sizeType,
......@@ -58,7 +77,21 @@ export function chooseImage ({
function openCamera () {
const camera = plus.camera.getCamera()
camera.captureImage(path => successCallback([path]),
camera.captureImage(path => {
// fix By Lxh 暂时添加拍照压缩逻辑,等客户端增加逻辑后修改
// 判断是否需要压缩
if (sizeType && sizeType.includes('compressed')) {
return getFileInfo(path).then(({size}) => {
// 压缩阈值 0.5 兆
const THRESHOLD = 1024 * 1024 * 0.5
return size && size > THRESHOLD
? compressImage(path).then(dstPath => successCallback([dstPath]))
:successCallback([path])
}).catch(errorCallback)
}
return successCallback([path])
},
errorCallback, {
filename: TEMP_PATH + '/camera/',
resolution: 'high',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册