63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
module.exports = {
|
|
formatTime(date) {
|
|
const year = date.getFullYear()
|
|
const month = date.getMonth() + 1
|
|
const day = date.getDate()
|
|
const hour = date.getHours()
|
|
const minute = date.getMinutes()
|
|
const second = date.getSeconds()
|
|
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(
|
|
':')
|
|
},
|
|
formatDate(date) {
|
|
const year = date.getFullYear()
|
|
const month = date.getMonth() + 1
|
|
const day = date.getDate()
|
|
|
|
|
|
return [year, month, day].map(formatNumber).join('-')
|
|
},
|
|
formatNumber(n) {
|
|
n = n.toString()
|
|
return n[1] ? n : '0' + n
|
|
},
|
|
|
|
compress(base64String, w, quality) {
|
|
console.log(base64String.length);
|
|
var getMimeType = (urlData) => {
|
|
var arr = urlData.split(",");
|
|
var mime = arr[0].match(/:(.*?);/)[1];
|
|
// return mime.replace("image/", "");
|
|
return mime;
|
|
};
|
|
var newImage = new Image();
|
|
var imgWidth, imgHeight;
|
|
|
|
var promise = new Promise((resolve) => (newImage.onload = resolve));
|
|
newImage.src = base64String;
|
|
return promise.then(() => {
|
|
imgWidth = newImage.width;
|
|
imgHeight = newImage.height;
|
|
var canvas = document.createElement("canvas");
|
|
var ctx = canvas.getContext("2d");
|
|
if (Math.max(imgWidth, imgHeight) > w) {
|
|
if (imgWidth > imgHeight) {
|
|
canvas.width = w;
|
|
canvas.height = (w * imgHeight) / imgWidth;
|
|
} else {
|
|
canvas.height = w;
|
|
canvas.width = (w * imgWidth) / imgHeight;
|
|
}
|
|
} else {
|
|
canvas.width = imgWidth;
|
|
canvas.height = imgHeight;
|
|
}
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
ctx.drawImage(newImage, 0, 0, canvas.width, canvas.height);
|
|
var base64 = canvas.toDataURL(getMimeType(base64String), quality);
|
|
console.log(base64);
|
|
return base64;
|
|
});
|
|
|
|
}
|
|
} |