canvastoFile.ts 643 B

1234567891011121314
  1. import { EImageType } from '@models';
  2. /**
  3. * 将一个canvas对象转变为一个File(Blob)对象
  4. * 该方法可以做压缩处理
  5. *
  6. * @param {canvas} canvas
  7. * @param {number=} quality - 传入范围 0-1,表示图片压缩质量,默认0.92
  8. * @param {string=} type - 确定转换后的图片类型,选项有 "image/png", "image/jpeg", "image/gif",默认"image/jpeg"
  9. * @returns {Promise(Blob)}
  10. */
  11. export default function canvastoFile(canvas: HTMLCanvasElement, quality: number = 0.92, type: EImageType = EImageType.JPEG): Promise<Blob> {
  12. return new Promise(resolve => canvas.toBlob(blob => resolve(blob), type, quality));
  13. };