亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Angular6 中壓縮 Base64/二進制圖像?

如何在 Angular6 中壓縮 Base64/二進制圖像?

HUWWW 2021-08-26 16:33:52
我用于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);但這是行不通的。我想找到另一個壓縮圖像的解決方案
查看完整描述

2 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超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);

    });

  });

}


查看完整回答
反對 回復 2021-08-26
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

base64 圖像很可能在以 base64 編碼之前已經被壓縮 (jpeg)。您無法進一步壓縮此類數據。

如果您需要高質量和低質量的圖像,您應該從網絡攝像頭請求高質量(最好是原始像素)圖像并將其轉換為具有不同壓縮參數的 jpeg 圖像。

如果相機只返回jpeg數據,需要先解壓再用不同的參數重新壓縮,這是可能的,但會消耗更多的時間,導致質量更差。

Ngx-webcam 可能對此要求有一些限制,可能需要查看其代碼并對其進行一些擴展以返回不同質量級別的捕獲圖像。有一個captureImageData標志可用于檢索原始圖像數據,但有關如何使用它的文檔有點少。


查看完整回答
反對 回復 2021-08-26
  • 2 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號