canvastoDataURL.ts 753 B

123456789101112131415161718
  1. import { EImageType } from '@models';
  2. import { checkImageType } from '@utils';
  3. /**
  4. * 将一个Canvas对象转变为一个dataURL字符串
  5. * 该方法可以做压缩处理
  6. *
  7. * @param {canvas} canvas
  8. * @param {number=} quality - 传入范围 0-1,表示图片压缩质量,默认0.92
  9. * @param {string=} type - 确定转换后的图片类型,选项有 "image/png", "image/jpeg", "image/gif",默认"image/jpeg"
  10. * @returns {Promise(string)} Promise含有一个dataURL字符串参数
  11. */
  12. export default async function canvastoDataURL(canvas: HTMLCanvasElement, quality: number = 0.92, type: EImageType = EImageType.JPEG): Promise<string> {
  13. if (!checkImageType(type)) {
  14. type = EImageType.JPEG;
  15. }
  16. return canvas.toDataURL(type, quality);
  17. };