Веб-сборка: libjpeg - понимание того, как получить сжатые данные jpeg после вызова compress () - PullRequest
0 голосов
/ 09 мая 2020

В следующем проекте для чтения и записи 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.

...