0

我有一个ImageData对象,但 Tesseract.js 只接受blob对象。如何尽可能高效地将其转换ImageData为 a ?blob

4

2 回答 2

1

参考这里,代码应该看起来像 -

const ImageDataToBlob = function(imageData){
  let w = imageData.width;
  let h = imageData.height;
  let canvas = document.createElement("canvas");
  canvas.width = w;
  canvas.height = h;
  let ctx = canvas.getContext("2d");
  ctx.putImageData(imageData, 0, 0);        // synchronous

  return new Promise((resolve) => {
        canvas.toBlob(resolve); // implied image/png format
  });
}
于 2020-12-12T17:48:27.397 回答
0

Tesseract.js 还采用其他一些类型 - https://github.com/naptha/tesseract.js/blob/master/docs/image-format.md - 我在互联网上找到了一些可以转换的代码:

function imgDataToImage(imagedata) {
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    canvas.width = imagedata.width;
    canvas.height = imagedata.height;
    ctx.putImageData(imagedata, 0, 0);

    var image = new Image();
    image.src = canvas.toDataURL();
    return image;
}
于 2020-12-12T17:39:34.513 回答