Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли программно определить "испорчен" ли JPG файл или нет? [D7, WinXP]


Hmm ©   (2005-01-14 12:55:00) 

Здраствуйте.

Возник вопрос, можно ли программно определить "испорчен" ли JPG файл или нет? Какие особенности (размер, что-то еще) могут на это указывать?

Дело в том, что в результате нехитрых манипуляций с винтом получил много мегабайт картинок, треть которых испорчена, т.е. либо не грузиться совсем выдавая ошибку, либо грузиться, но в ужасном качестве (непонятные линии, цвета и т.д.).
Т.о. в ручную перебирать все это - жуткая вешь.

Спасибо за внимание.


Neznaika   (2005-01-17 16:47:00) [1]

Поймал Thank You


Hmm   (2005-01-17 16:23:00) [2]

Получил. Спасибо.


Ega23   (2005-01-17 16:17:00) [3]

Ловите оба!


Hmm   (2005-01-17 16:02:00) [4]

asm.hmm@mail.ru


Neznaika   (2005-01-17 15:51:00) [5]

Если не лень то пришли и мне, тоже интересно!


Ega23   (2005-01-17 15:49:00) [6]

и вообще про формат Jpeg как таковой, можно почитать?

адрес свой давай. пришлю архивчик, там всё доступно расписано.


Hmm   (2005-01-17 15:46:00) [7]

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

и про это:
> декодер JPEG, отличный от Борландовского.
> За одно и с алгоритмом Хаффмана разберёшься.

и вообще про формат Jpeg как таковой, можно почитать?


Ega23   (2005-01-17 15:01:00) [8]

2 Hmm ©   (17.01.05 11:30) [7]

Пиши собственный декодер JPEG, отличный от Борландовского. За одно и с алгоритмом Хаффмана разберёшься.
Я когда-то очень давно так с tiff'ом поступил.


Amoeba   (2005-01-17 14:58:00) [9]

IMHO решение задачи программным путем будет (если это вообще возможно) потребует не на один порядок больше времени, чем отбраковка вручную.


Neznaika   (2005-01-17 11:42:00) [10]

>>Hmm ©   (17.01.05 11:30) [7]
Да я то Вас тоже понял - я утрирую.
Но по моему единственный вариант обнаружить в картинке нарушения цветобаланса - это сравнение с нормальной такой же картинкой.

Я могу ошибаться (надеюсь так оно и есть т.к. я бы тоже взглянул на такой исходник с удовольствием).


Анонимщик   (2005-01-17 11:39:00) [11]

Становится очевидным, что ты сам должен файл открывать, разбирать заголовок, начало блоков, производить декодирование, обратное косинусное преобразование и т.д. Либо найти библиотеку, которая предназначена для восстановления файлов нужных тебе форматов. Формат jpeg'а несекретный, в интеренете найдешь. Только станешь ли этим всем заниматься?


Hmm   (2005-01-17 11:30:00) [12]

2 Neznaika
Ну суть я вроде бы описал в самом вопросе Hmm ©   (14.01.05 12:55)  


> пририсовал Вам усы

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

Я лишь сделал предположение о возможности обнаружить "усы".
Собтвенно, вроде бы Smithson  (14.01.05 13:14) [3] меня понял.
Остается вопрос каким образом открыть такойфайл, чтобы вызвать исключение?

PS: Если конечно это всетаки возможно.


Neznaika   (2005-01-17 11:03:00) [13]

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


Hmm   (2005-01-17 10:55:00) [14]

Снова здраствуйте.

Дошли, наконец руки до этого дела и сразу появились вопросы.
Все ж таки я не смог при использовании TJpegImage добиться реакции отличной от TImage. Открываю полностьюубитый файл, в обоих случаях генерируется одинаковое исключение.

Но суть даже не в этом. TJpegImage также не выдает никаких исключений при попытке открыть картинки в
> ужасном качестве (непонятные линии, цвета и т.д.).

Вообще возможно ли на этапе открытия проанализировать состояние изображения (кроме как визуально)?


Hmm   (2005-01-14 14:24:00) [15]


> TJPEGImage


Спасибо.


Smithson   (2005-01-14 13:14:00) [16]

При открытии jpeg стандартный TJPEGImage генерит исключение, если структура файла повреждена (как раз те самые жуткие художества). Ловить его и смотреть, что там случилось.


Hmm   (2005-01-14 13:09:00) [17]

Да, это наверняка сработает с теми картинками, которые убиты насовсем (есть и такие).
Но вот как быть с теми, которые нормально открываются, но выдают жуткие вещи, вместо изобразительного искусства?


Neznaika   (2005-01-14 12:59:00) [18]

Попробовать открыть (IMHO) если не откроется then Showmessage('Гафно-картинка'). Опять-же IMHO.


Наверх

Титульная страница Поиск, карта сайта Написать письмо