У меня есть несколько изображений, использующих различные типы кодирования (JPEG Lossless и базовый JPEG), и я хочу извлечь эту информацию из моих изображений.
Я пробовал несколько анализаторов / читателей exif, ноНи один из них не работает с моими изображениями из-за специального JPEG Lossless (SOF 3).
Я пробовал с некоторыми онлайн-инструментами (get-metadata dot com и т. д.), и он работает нормально, вот что выводится:
Процесс кодирования: Кодирование без потерь, кодирование Хаффмана
Или для обычного JPEG:
КодированиеПроцесс: Базовый DCT, кодирование Хаффмана
Знаете ли вы простой способ или библиотеку, которая могла бы это сделать?У меня есть изображение в качестве буфера в NodeJS.
Для информации, это код, который я использую сейчас, он работает, но я не уверен, что он надежен:
//0xFF 0xD8 means that it is a JPEG image
if (pixelData[0] === 0xFF && pixelData[1] === 0xD8) {
//this field contains the encoding process
//see https://www.loc.gov/preservation/digital/formats/fdd/fdd000334.shtml
//see https://en.wikipedia.org/wiki/JPEG for more info
// NOT SURE ABOUT THIS ?
const jpegProcess = pixelData[21];
//0xC3 0xC7 0xCB 0xCF is for JPEG Lossless compression (SOF3)
if (jpegProcess === 0xC3 || jpegProcess === 0xC7 || jpegProcess === 0xCB || jpegProcess === 0xCF) {
...decode image
} //0xC0 0xC2 0xDB are baseline JPEG
else {
...do other stuff...
}
}