zarm
Version:
基于 React 的移动端UI库
49 lines (40 loc) • 1.28 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
*/
function changeImageSize(img, quality, fileType) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
if (!ctx) {
console.error('请使用高版本浏览器,该版本浏览器不支持生成缩略图');
return '';
} // const MAX_WIDTH = 800;
// const MAX_HEIGHT = 600;
var width = img.width,
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 && !(quality > 0 && quality <= 1)) {
console.error('请输入有效的压缩比例, 没有将默认使用 0.92');
}
return canvas.toDataURL(fileType, quality);
}
;