图片压缩,ios使用uni,安卓使用canvas压缩

const compressImage = (index, tempImageArr,callback,newArr=[])=> {

  let temp = tempImageArr[index]; 
  if (index < tempImageArr.length) {
    uni.getImageInfo({
      src: tempImageArr[index],
      success: info => {
        let ratio = 0.8; //压缩比例
        let quality =  0.8;  //图片质量
        let canvasWidth = info.width;
        let canvasHeight = info.height;
        while (canvasWidth > 2000 || canvasHeight > 2000) {
          //比例取整
          canvasWidth = Math.trunc(info.width / ratio)
          canvasHeight = Math.trunc(info.height / ratio)
          ratio += 0.1;
        }

        if(/IOS|ios|Ios/.test(systemInfo.platform)) {
          uni.compressImage({
            quality: quality,
            src: temp,
            success: res => {
              newArr.push({ compress: res.tempFilePath, temp});
              compressImage(++index, tempImageArr, callback, newArr);
            },
            fail:e => {
            }
          })
        } else {
          uni.createSelectorQuery().selectAll('#canvas').node(res => {
            const canvas = res[0].node;
            canvas.width = canvasWidth;
            canvas.height = canvasHeight;
            const ctx = canvas.getContext('2d');
            const image = canvas.createImage();
            image.src = tempImageArr[index];
            image.onload = () => {
              ctx.drawImage(image, 0, 0, canvasWidth, canvasHeight);
              uni.canvasToTempFilePath({
                canvas: canvas,
                fileType: 'jpg',
                quality: quality,
                success: image => {
                  newArr.push({ compress: image.tempFilePath, temp}); 
                  compressImage(++index, tempImageArr, callback, newArr);
                },
                fail: err => {
                  console.log(err)
                }
              })
            }
          }).exec()
        }
      },
      fail: e => {}
    })
  } else {
    callback(newArr)
  }

  
  }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容