В следующем проекте для чтения и записи jpeg используется WASM-сборка libjpeg.
https://github.com/AntoineViau/webassembly-jpeg/blob/master/index.html
Я смотрю на эту часть кода, и пытается изменить его, чтобы сохранить сжатый jpeg.
// Call the WebAssembly function compress()
// It will compress the bitmap image to Jpeg with given quality value.
// Then it will decompress back and return the bitmap structure (width, height, uncompressedSize, data)
let pImage = compress(quality);
image.compressedSize = getValue(pImage + 8, 'i32');
image.data = getValue(pImage + 12, 'i32');
Похоже, что image.data
является указателем на данные растрового изображения RGB, которые отображаются в функции display
- см. последний комментарий в код выше. Я хочу получить сжатые данные в формате jpeg.
Также обратите внимание, как код здесь в демонстрации немного отличается:
let imgBuf = compress(quality);
let size = Module.HEAP32[(imgBuf + 4) >> 2];
Может ли кто-нибудь пролить свет на это?
Для наглядности ищу расположение сжатых данных jpeg после вызова compress
.