You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1001 B

<template>
<view class="compress__canvas">
<!-- #ifndef H5 -->
<canvas canvas-id="compress_canvas" :style="{width: width + 'px', height: height + 'px'}"></canvas>
<!-- #endif -->
</view>
</template>
<script>
import compress from './compress.js'
export default {
name: 'wCompress',
data() {
return {
width: 0,
height: 0
}
},
methods: {
start(imgUrl, options = {}) {
return new Promise(async (resolve, reject) => {
if (imgUrl instanceof Array) {
try {
let arr = []
for (let i = 0; i < imgUrl.length; i++) {
let url = await compress(imgUrl[i], this, options)
arr.push(url)
}
resolve(arr)
} catch (e) {
reject(e)
}
} else {
compress(imgUrl, this, options)
.then(resolve)
.catch(reject)
}
})
}
}
}
</script>
<style scoped>
.compress__canvas {
position: absolute;
left: 10000px;
visibility: hidden;
height: 0;
overflow: hidden;
}
</style>