Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить корректность файла изображения? 
V
    Опции темы
Winprogrammer
Дата 17.12.2006, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Доброго времени суток!!!

Пишу прогу. Есть модуль где я сканирую сканирую папку на диске и после заношу все картинки 
*.jpg, *.bmp  в таблицу Paradox в формате джэпэгп. Возникла такая проблема: если файл битый тогда моя прога ломается и улетает!!!!

Как исправить???????????
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Alexeis
Дата 17.12.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



На счет BMPшек, то 4 байта после идентификатора "BM" это размер файла, он всегда должен совпадать с истинным размером файла, если нет то файл обрезан. 

Для жпег целостность можно определить по маркерам 
Цитата

Короткое объяснение некоторых важных маркеров, содержащихся в файле JPG.

SOI = Начало Изображения = 'FFD8'

Этот маркер должен присутствовать в любом файле JPG *однажды* в начале файла.

(Любой файл JPG начинается с последовательности FFD8.)

EOI = Конец Изображения = 'FFD9'

Подобно EOI: любой файл JPG заканчивается на FFD9.


   Это главный признак целостности, т.е. размер файла правильный. Еще есть проверки корректности данных файла. Для битмапов это тоже не очень несложно. Вот тут есть описание формата и пример чтения с проверкой корректности (не противоречивости) содержимого. 
  Для jpeg это намного сложнее, так сам формат очень сложный и разнообразный, содержит много форматов сжатия и сегментов.

Это сообщение отредактировал(а) alexeis1 - 17.12.2006, 12:35


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 17.12.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



поставь загрузку картинки занесение её в базу в try .. except.
Если битая, то не загрузится и не попадёт в базу.
PM MAIL   Вверх
Winprogrammer
Дата 17.12.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(Snowy @ 17.12.2006,  13:12)
поставь загрузку картинки занесение её в базу в try .. except.
Если битая, то не загрузится и не попадёт в базу.

Пытался. Не работает однако smile Либо я что-то неправильно делаю с try...except либо Дельфа глючит.

Добавлено @ 17:19 
Цитата(alexeis1 @ 17.12.2006,  12:34)
На счет BMPшек, то 4 байта после идентификатора "BM" это размер файла, он всегда должен совпадать с истинным размером файла, если нет то файл обрезан. 

Для жпег целостность можно определить по маркерам 
Цитата

Короткое объяснение некоторых важных маркеров, содержащихся в файле JPG.

SOI = Начало Изображения = 'FFD8'

Этот маркер должен присутствовать в любом файле JPG *однажды* в начале файла.

(Любой файл JPG начинается с последовательности FFD8.)

EOI = Конец Изображения = 'FFD9'

Подобно EOI: любой файл JPG заканчивается на FFD9.


   Это главный признак целостности, т.е. размер файла правильный. Еще есть проверки корректности данных файла. Для битмапов это тоже не очень несложно. Вот тут есть описание формата и пример чтения с проверкой корректности (не противоречивости) содержимого. 
  Для jpeg это намного сложнее, так сам формат очень сложный и разнообразный, содержит много форматов сжатия и сегментов.

 Если можно примерчик, пожалуйста.
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Snowy
Дата 17.12.2006, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Цитата(Winprogrammer @  17.12.2006,  17:18 Найти цитируемый пост)
Либо я что-то неправильно делаю с try...except либо Дельфа глючит
Угу. Либо ты что-то не так делаешь (но тут мои телепатические способности ограничены), либо запускаешь из под дельфи.
Запускай сам ехе.
PM MAIL   Вверх
Alexeis
Дата 18.12.2006, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(Winprogrammer @  17.12.2006,  17:18 Найти цитируемый пост)
сли можно примерчик, пожалуйста. 

Ой написал 
Цитата(alexeis1 @  17.12.2006,  12:34 Найти цитируемый пост)
Вот тут есть описание формата и пример чтения с проверкой корректности (не противоречивости) содержимого. 

а ссылку оставить забыл smile http://forum.vingrad.ru/index.php?showtopic=94227


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Winprogrammer
Дата 18.12.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(Snowy @ 17.12.2006,  19:07)
Цитата(Winprogrammer @  17.12.2006,  17:18 Найти цитируемый пост)
Либо я что-то неправильно делаю с try...except либо Дельфа глючит
Угу. Либо ты что-то не так делаешь (но тут мои телепатические способности ограничены), либо запускаешь из под дельфи.
Запускай сам ехе.

Вы правы. Я запускал всё из под Дельфы по привычке. Сейчас попробую прилепить try...except. Надеюсь заработает.

Спасибо за помощь.
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.