@cloudcome/utils-browser
Version:
cloudcome utils for browser
59 lines (58 loc) • 1.47 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const object = require("@cloudcome/utils-core/object");
const image = require("./image.cjs");
function canvasToBase64(canvas, type, quality) {
return canvas.toDataURL(type, quality);
}
async function canvasToBlob(canvas, type, quality) {
return new Promise((resolve, reject) => {
canvas.toBlob(
(blob) => {
if (blob) {
resolve(blob);
} else {
reject(new Error("canvas 导出二进制对象失败"));
}
},
type,
quality
);
});
}
async function canvasDrawImage(canvas, url, options) {
const ctx = canvas.getContext("2d");
if (!ctx) throw new Error("canvas context is null");
const img = await image.imageLoad(url);
const defaults = {
srcLeft: 0,
srcTop: 0,
srcWidth: img.width,
srcHeight: img.height,
destLeft: 0,
destTop: 0,
destWidth: canvas.width,
destHeight: canvas.height
};
const { srcLeft, srcTop, srcWidth, srcHeight, destLeft, destTop, destWidth, destHeight } = object.objectDefaults(
options || {},
defaults
);
ctx.drawImage(
img,
// source
srcLeft,
srcTop,
srcWidth,
srcHeight,
// dest
destLeft,
destTop,
destWidth,
destHeight
);
}
exports.canvasDrawImage = canvasDrawImage;
exports.canvasToBase64 = canvasToBase64;
exports.canvasToBlob = canvasToBlob;
//# sourceMappingURL=canvas.cjs.map
;