Проблема с изображением JPEG [закрыто]

Итак, моя проблема связана с одним из файлов Jpeg, с которыми я работаю. Что касается Jpegs, то если вы измените хотя бы малейшую часть его HEX-файла, все изображение просто испортится. Я обнулил около двух строк из ТЕЛА этого JPEG, и он взорвался, дав мне этот сумасшедший зеленый слой на половине изображения. Другие форматы изображений не будут этого делать. Это как-то связано с тем, что JPEGS хранит ссылки на похожие цвета, а не хранит отдельные данные для каждого пикселя. Мой вопрос: есть ли способ уменьшить эффект, возникающий в результате отсутствия даже одной строки данных из файла HEX? В идеале я бы искал программу, которая может сделать это несколько видимым.

Спасибо, Даниялвведите описание изображения здесь

это не похоже на вопрос, связанный с фотографией, и, вероятно, лучше подходит для графического сайта.
Голосование за закрытие как неясное - нет указаний на то, каков желаемый конечный результат этого процесса, плюс куча предположений о том, как работают файлы JPEG ("ссылки на похожие цвета"), которые просто неверны (это дискретное косинусное преобразование ) . Пожалуйста, отредактируйте вопрос, чтобы объяснить , почему вы вносите эти произвольные двоичные изменения в файл и как это относится к фотографии.
Этот вопрос кажется не по теме, потому что он касается манипулирования файлами изображений, а не фотографии.
Разве это не то же самое изображение и тот же самый вопрос, заданный несколько месяцев назад?

Ответы (3)

Если вы намерены изменить файл JPEG, изменив некоторые байты внутри него, просто сделайте следующее:

  1. конвертировать JPEG в несжатый BMP
  2. изменить байты
  3. конвертировать BMP в JPEG

Вы преднамеренно испортили сжатый файл, восстановить данные невозможно, кроме как вернуть обратно то, что вы сломали.

Инструменты восстановления изображений созданы для того, чтобы брать блоки данных и возвращать их в правильном порядке; например, когда файловая система повреждена на SD-карте или жестком диске. Они не предназначены для исправления причиненного ущерба (если это вообще возможно).

Хорошей аналогией для сжатия является мысленный эксперимент: возьмите маршруты для загадочного тура с карт Google. Удалите всю информацию о путевых точках, названиях дорог и т. д., поскольку они нам не нужны для управления автомобилем. Остальные инструкции вы можете сформировать в упрощенную систему (например, проехать n км, повернуть налево/направо , выбрать выход # n , повторить последнюю инструкцию n раз). Это ваши «сжатые» направления движения. Теперь удалите кучу направлений в середине, прежде чем нажимать «Печать» — это то, что вы сделали, и исправить это невозможно.

JPEG — это стандарт формата файлов для хранения изображений. Это не HEX-файл. В файле JPEG нет кодировки HEX. Поэтому ваш вопрос не имеет смысла и на него нельзя ответить.

То, как выполняется сжатие в схеме кодирования JPEG, не обязательно соответствует 1:1 между несколькими соседними битами в файле и определенным местом на изображении. Это не работает таким образом. Небольшая ошибка в файле JPEG может сильно повлиять на изображение. Вот как это работает.

Считайте ваш файл выше поврежденным и выбросьте его. Вернитесь к источнику, вашим резервным копиям или откуда они изначально были взяты.

Hex — это распространенный способ отображения двоичных значений на уровне байтов в файле, все файлы можно отображать и редактировать с помощью «шестнадцатеричного редактора».
@James: Да, все файлы могут отображаться как HEX и даже манипулироваться таким образом с помощью подходящего пользовательского интерфейса. Но это не делает его «HEX-файлом», о котором спрашивал ОП. Существуют настоящие HEX-файлы, такие как HEX-файл общего формата Intel для хранения данных для EEPROM и т.п. JPEG не использует такую ​​кодировку.