Допустим, у меня есть элемент canvas
, и мне нужно преобразовать изображение на холсте в формат PNG или JPEG. Конечно, я могу просто использовать canvas.toDataURL
, но проблема в том, что мне нужно делать это двадцать раз в секунду, а canvas.toDataURL
очень медленно --настолько медленным, что процесс захвата пропускает кадры, потому что браузер занят преобразованием в PNG.
Моя идея состоит в том, чтобы вызвать context.getImageData(...)
, что, очевидно, намного быстрее, и отправить возвращенный CanvasPixelArray
в Web Worker, который затем обработает необработанные данные изображения в PNG или JPEG. Проблема в том, что я не могу получить доступ к нативному canvas.toDataURL
из Web Worker, поэтому вместо этого мне придется прибегнуть к чистому JavaScript. Я пробовал искать библиотеки, предназначенные для Node.js, но эти написаны на C++. Существуют ли какие-либо библиотеки на чистом JavaScript, которые будут отображать необработанные данные изображения в PNG или JPEG?