Это длинный кадр, но если ваши JPEG-файлы закодированы в прогрессивном режиме, то вы сможете спасти версию вашего испорченного изображения с более низким разрешением.
Прогрессивные JPEG кодируются в виде нескольких дополнительных «сканирований». Файл начинается со сканирования, которое представляет все изображение с очень низким разрешением, каждое последующее сканирование строится поверх предыдущего и добавляет дополнительное разрешение. Этот инкрементный процесс продолжается до тех пор, пока не будет получено изображение с полным разрешением.
Теоретически, если ваши JPEG-файлы являются прогрессивными, вы сможете прекратить декодирование, когда обнаружите поврежденное сканирование, и, хотя изображение будет иметь более низкое разрешение, чем оригинал, по крайней мере, оно будет целым.
Я полагаю, что инструмент jpeginfo, который вы используете, скажет вам, являются ли ваши jpegs прогрессивными или базовыми, поэтому это будет быстрый тест, чтобы решить, нужно ли вам тратить больше времени на это потенциальное решение или нет.
К сожалению, я не смог найти ни одного инструмента, который мог бы создавать инкрементные разрешения как отдельные изображения, для этого может потребоваться специальный инструмент, построенный на libjpeg .