/* * @Author: GuLiMmo 2820890765@qq.com * @Date: 2024-05-21 10:14:11 * @LastEditors: GuLiMmo 2820890765@qq.com * @LastEditTime: 2024-05-21 10:20:34 * @FilePath: /bigScreen/src/utils/cesium/compressImage2.js * @Description: * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. */ export default function compressImage( src, maxWidth, maxHeight, outputFormat = 'image/jpeg', quality = 0.7 ) { return new Promise((resolve, reject) => { const image = new Image() image.setAttribute('crossOrigin', 'Anonymous') image.src = src image.onload = () => { let width = image.width let height = image.height if (width > maxWidth) { height *= maxWidth / width width = maxWidth } if (height > maxHeight) { width *= maxHeight / height height = maxHeight } const canvas = document.createElement('canvas') canvas.width = width canvas.height = height const ctx = canvas.getContext('2d') ctx.drawImage(image, 0, 0, width, height) const newDataUrl = canvas.toDataURL(outputFormat, quality) resolve(newDataUrl) } image.onerror = reject }) }