@etsoo/editor
Version:
ETSOO Free WYSIWYG HTML Editor
63 lines (61 loc) • 1.62 kB
JavaScript
;
/**
* Image utilies
*/
exports.ImageUtils = void 0;
(function (ImageUtils) {
/**
* Calcuate max size
* @param source Source size
* @param maxSize Max size
* @returns Result
*/
function calcMax(source, maxSize) {
if (source.width > maxSize || source.height > maxSize) {
const wr = source.width / maxSize;
const hr = source.height / maxSize;
if (hr > wr) {
return {
width: source.width / hr,
height: maxSize
};
}
else {
return {
width: maxSize,
height: source.height / wr
};
}
}
else {
return source;
}
}
ImageUtils.calcMax = calcMax;
/**
* Resize
* @param source Source
* @param size Target size
* @param quality Quality
* @returns Canvas
*/
async function resize(
// For Blob, createImageBitmap(blob)
source, size, quality) {
// Dynamic load pica
const pica = (await import('pica')).default;
// Canvas
const to = document.createElement("canvas");
to.width = size.width;
to.height = size.height;
// pica instance
const pi = pica();
return await pi.resize(source, to, {
quality,
unsharpAmount: 160,
unsharpRadius: 0.6,
unsharpThreshold: 1
});
}
ImageUtils.resize = resize;
})(exports.ImageUtils || (exports.ImageUtils = {}));