Я использую headless-gl для запуска webGL на Node.js, динамически создавая изображение на сервере. После создания изображение должно храниться в базе данных (MongoDB), прежде чем пользователь снова получит доступ к изображению через API.
Ниже приведена часть, где создается изображение:
var pixels = new Uint8Array(width * height * 4)
gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels)
Затем пиксели преобразуются в base64 (поскольку это рекомендуемый способ загрузки изображения в клиентском HTML).
var base64Image = new Buffer(pixels, 'binary').toString('base64');
Однако строка, созданная этим буфером, не может быть декодирована для создания изображения. Может быть, пиксели не являются «бинарными»? Или я должен просто сохранить строку пикселей в базе данных и попытаться перерисовать пиксель в холсте попиксельно в клиенте (я не думаю, что это лучший способ)?