У меня есть объект ImageData
, но Tesseract.js принимает только объекты blob
. Как я могу максимально эффективно преобразовать ImageData
в blob
?
Что мне добавить?
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;
}
Ссылаясь на здесь, код должен выглядеть так:
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
});
}
Добро пожаловать в СО! Этот пост кажется не по теме из-за вопросов, в которых недостаточно информации для диагностики проблемы. Пожалуйста, отредактируйте свой пост соответствующим образом, чтобы добавить достаточно подробностей, чтобы люди могли вам помочь.