UNPKG

@cloudcome/utils-browser

Version:
59 lines (58 loc) 1.47 kB
"use strict"; 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