上传图片时根据尺寸比来提示用户上传推荐尺寸的图片

529 阅读1分钟

需求

这种尺寸比的图片在小程序端显示的效果最好,图片尺寸比不变的情况下放大倍数不会影响图片的显示
比如:

750 * 750 和 1500 * 1500的效果时一样的,所以当用户上传1:1的图片时不需要提示用户上传推荐尺寸的图
750 * 750
1500 * 1500

不是推荐尺寸时

async checkResolutionIsMatch(file) {
      if (!this.resolution) return Promise.resolve()
      try {
        const imgSize = await measureImgSize(file)
        const resolution = this.resolution.split('/')
        var resolutionWidth = Number(resolution[0]) // 推荐的尺寸
        var resolutionHeight = Number(resolution[1])
        var actualWidth = Number(imgSize.width)
        var actualHeight = Number(imgSize.height)
        var resolutionSdr = actualHeight / resolutionHeight
        var actualSdr = actualWidth / resolutionWidth
        console.log('实际尺寸比:', actualSdr)
        console.log('推荐尺寸比:', resolutionSdr)
        const isWidthMatch = imgSize.width === Number(resolution[0])
        const isHeightMatch = imgSize.height === Number(resolution[1])
        if ((isWidthMatch && isHeightMatch) || (resolutionSdr === actualSdr)) {
          return Promise.resolve()
        } else {
          if (this.onResolutionFail) {
            const result = await this.onResolutionFail(file, imgSize)
            if (result === false) {
              return Promise.reject()
            }
          }
        }
      } catch (e) {
        return Promise.reject(e)
      }
    }