У меня есть файл JPEG на диске, что не совсем нормально - этот файл JPEG имеет дополнительные данные мусора, добавленные за End Of Image (FFD9). Этот файл JPEG все еще может быть открыт для просмотра JPEG.
Я хочу удалить эту дополнительную информацию за End Of Image (FFD9). Ограничения:
- Должно быть сделано программно
- Должно быть без потерь
- Должен использовать нативный код, например C ++
Один из способов, который я обнаружил, - это повторно сохранить файл с помощью инструмента командной строки IrfanView, используя команду без потерь JPG_TRANSFORM: / jpg_rotate. Дополнительные данные автоматически удаляются.
Однако, есть ли другой способ, которым я могу сделать это в коде C ++. Если это возможно, я не хочу использовать exes, такие как IrfanView, чтобы сделать это. Я хотел бы сделать все в коде, чтобы сохранить вещи.
Я подумываю определить конец файла (FFD9), а затем сохранить буфер перед EOF в другом JPEG. Но как сохранить буфер без потерь?