如何在Angular6中压缩Base64 /二进制图像?

哈钦奇

我用来Ngx-Webcam从相机捕获图像。我想从相机获得高质量和低质量的图像

该库返回给我Base64映像。它具有减小尺寸的选项,imageQuality但我无法使用,因为我同时需要高质量的图像和低质量的图像

let data = webcamImage.imageAsBase64;
const raw = window.atob(data);

const rawLength = raw.length;
const unit8array = new Uint8Array(new ArrayBuffer(rawLength));

for (let i = 0; i < rawLength; i++) {
  unit8array[i] = raw.charCodeAt(i);
}

我尝试针对我们的问题应用https://www.npmjs.com/package/image-conversion

let data = webcamImage.imageAsBase64;
const raw = window.atob(data);
let contentType = raw.split(';')[0];

const rawLength = raw.length;
const unit8array = new Uint8Array(new ArrayBuffer(rawLength));

for (let i = 0; i < rawLength; i++) {
  unit8array[i] = raw.charCodeAt(i);
}

let blob = new Blob([unit8array], {type: contentType});
imageProcess.compress(blob, 0.4);

但这是行不通的。我想找到另一个压缩图像的解决方案

哈钦奇

我发现了如何用画布压缩图像

compress(webcamImage: WebcamImage, quality: number): Observable<string> {
  let _canvas = this.canvas;
  let width = webcamImage.width;
  let height = webcamImage.height;

  _canvas.width = width;
  _canvas.height = height;

  // paint snapshot image to canvas
  const img = new Image();
  img.src = webcamImage.imageAsDataUrl;
  return Observable.create(observe => {
    (img.onload = () => {
      const context2d = _canvas.getContext('2d');
      context2d.drawImage(img, 0, 0, width, height);
      // read canvas content as image
      const mimeType: string = webcamImage.mineType;
      const dataUrl: string = _canvas.toDataURL(mimeType, quality);
      observe.next(dataUrl);
    });
  });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找到二进制图像中的行?

如何生成随机的二进制图像?

二进制图像中的偏斜字符

Django模板中的二进制图像显示

HTML:嵌入二进制图像而不进行base64压缩

如何在PHRETS中将二进制图像数据显示为图像

我如何消除此二进制图像中的噪声并平滑图像-openCV

如何在 OpenCV 中填充二进制图像中的空白?

如何在MATLAB中获取二进制图像中字符的外周长?

如何使用php将图像转换为二进制图像?

从二进制图像中查找坐标并将其投影到原始图像

使用EBImage包将Rgb图像转换为R中的二进制图像

openCV c ++中的手动侵蚀图像问题(二进制图像)

如何在二进制图像中检测多边形

如何在python中居中二进制图像的内容/对象?

如何在JavaScript中呈现二进制图像

如何在matlab中的灰色二进制图像内绘制矩形

如何在objcopy生成的二进制图像文件中获取入口地址?

如何在SQL中获取二进制图像

如何在二进制图像中找到最大的“斑点”

如何在不关闭OpenCV漏洞的情况下扩展二进制图像

如何在OpenCV Java中将二进制图像转换为灰度

如何在非二进制图像上使用scipy.label

Python:读取12位压缩的二进制图像

如何efficently设置的二进制图像1上方的行中的所有值?

OpenCV:如何关闭二进制图像中的边缘

如何删除与二进制图像中其余字符距离最远的数字/非字符

如何使用 Keras 从二进制图像分类模型中获取类?

如何确定二进制图像中的对象方向?(Python,OpenCV)