zarm-mobile
Version:
UI for react.js
49 lines (41 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = changeImageSize;
/**
* change img size or quality todo change size
*
* @param img
* @param quality
* @param fileType
* @returns {string}
*/
function changeImageSize(img, quality, fileType) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
// const MAX_WIDTH = 800;
// const MAX_HEIGHT = 600;
var width = img.width;
var height = img.height;
// if (width > height) {
// if (width > MAX_WIDTH) {
// height *= MAX_WIDTH / width;
// width = MAX_WIDTH;
// }
// } else if (height > MAX_HEIGHT) {
// width *= MAX_HEIGHT / height;
// height = MAX_HEIGHT;
// }
canvas.width = width;
canvas.height = height;
// 在canvas绘制前填充白色背景
ctx.fillStyle = '#fff';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, width, height);
// 是否有效的压缩比例(0 - 1)
if (!(quality > 0 && quality <= 1)) {
console.error('请输入有效的压缩比例, 没有将默认使用 0.92');
}
return canvas.toDataURL(fileType, quality);
}