Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/naptha/tesseract.js.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalearica <you@example.com>2022-08-11 08:10:29 +0300
committerBalearica <you@example.com>2022-08-11 08:10:29 +0300
commit75ddd6304109434a66064485bdaa23fb893990fa (patch)
tree0e10f1b6355f7bba8bc55ac3e173a57f5c84fb25
parent1136e0a9411b28a5ca3c386e21d6c0e651e0071d (diff)
Revert "Add support for ImageData and fix a hang in buffer handling (#610)"
This reverts commit 67848464ac6d89d00c3404e0ac90f36cf98c7233.
-rw-r--r--src/worker-script/utils/setImage.js30
-rw-r--r--src/worker/browser/loadImage.js4
2 files changed, 9 insertions, 25 deletions
diff --git a/src/worker-script/utils/setImage.js b/src/worker-script/utils/setImage.js
index c8fabcd..e9918db 100644
--- a/src/worker-script/utils/setImage.js
+++ b/src/worker-script/utils/setImage.js
@@ -9,37 +9,27 @@ const fileType = require('file-type');
* @access public
*/
module.exports = (TessModule, api, image) => {
- const buf = (image instanceof Uint8Array) ? Buffer.from(image) : null;
- const type = buf ? fileType(buf) : null;
+ const buf = Buffer.from(Array.from({ ...image, length: Object.keys(image).length }));
+ const type = fileType(buf);
let bytesPerPixel = 0;
let data = null;
let pix = null;
let w = 0;
let h = 0;
-
- if (image instanceof ImageData) {
- // The pixel format of ImageData is RGBA and technically
- // Tesseract is expecting ABGR, but it does not seem to matter
- // in practice, so to save effort the bytes are not rearranged.
- data = TessModule._malloc(image.data.byteLength);
- TessModule.HEAPU8.set(image.data, data);
- w = image.width;
- h = image.height;
- bytesPerPixel = 4;
- } else if (buf && type && type.mime === 'image/bmp') {
- /*
- * Although leptonica should support reading bmp, there is a bug of "compressed BMP files".
- * As there is no solution, we need to use bmp-js for now.
- * @see https://groups.google.com/forum/#!topic/tesseract-ocr/4mPD9zTxdxE
- */
+ /*
+ * Although leptonica should support reading bmp, there is a bug of "compressed BMP files".
+ * As there is no solution, we need to use bmp-js for now.
+ * @see https://groups.google.com/forum/#!topic/tesseract-ocr/4mPD9zTxdxE
+ */
+ if (type && type.mime === 'image/bmp') {
const bmpBuf = bmp.decode(buf);
data = TessModule._malloc(bmpBuf.data.length * Uint8Array.BYTES_PER_ELEMENT);
TessModule.HEAPU8.set(bmpBuf.data, data);
w = bmpBuf.width;
h = bmpBuf.height;
bytesPerPixel = 4;
- } else if (buf) {
+ } else {
const ptr = TessModule._malloc(buf.length * Uint8Array.BYTES_PER_ELEMENT);
TessModule.HEAPU8.set(buf, ptr);
pix = TessModule._pixReadMem(ptr, buf.length);
@@ -54,8 +44,6 @@ module.exports = (TessModule, api, image) => {
.map((v, idx) => (
TessModule.getValue(pix + (idx * 4), 'i32')
));
- } else {
- throw Error('Unsupported image data container');
}
/*
diff --git a/src/worker/browser/loadImage.js b/src/worker/browser/loadImage.js
index 34f047d..3102967 100644
--- a/src/worker/browser/loadImage.js
+++ b/src/worker/browser/loadImage.js
@@ -82,10 +82,6 @@ const loadImage = async (image) => {
img = await fixOrientationFromUrlOrBlobOrFile(img);
}
data = await readFromBlobOrFile(img);
- } else if (image instanceof ImageData) {
- // Support a canvas' ImageData by passing it directly,
- // where it is handled by setImage() without conversion.
- return image;
}
return new Uint8Array(data);