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

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

jpeg


Страницы:   1 2

mahab ©   (2006-10-23 19:36:00) 

Здравствуйте! У меня есть испорченный JPEG. Хотелось бы адекватно обработать исключительную ситуацию "Jpeg error #42" на загрузку в компонент Timage.Блок Try ... Except..end  не помогает.


ASoft   (2006-10-24 11:31:00) [1]


> но -- сделано как сделано.

где? в jpeg.pas?


Ketmar   (2006-10-24 10:44:00) [2]

>[23] Gydvin(c) 24-Oct-2006, 10:34
да понятно, что кучу ошибок можно было отловить в процессе открытия. но -- сделано как сделано.


Gydvin   (2006-10-24 10:34:00) [3]


> там всего пара байтиков в конце сломана?

Будет неверно отображаться. :))) Просто сравнивать реально существующий размер данных с заявленным. Имхо это должно отсеч часть ошибок


Ketmar   (2006-10-24 10:25:00) [4]

>[21] Gydvin(c) 24-Oct-2006, 10:23
>Аха, как будто не судьба, сразу проверить открываемый файл,
>на соответствие формата и целостность
в общем случае его для этого всё равно надо декодировать. а вдруг там всего пара байтиков в конце сломана?


Gydvin   (2006-10-24 10:23:00) [5]


> Ketmar ©   (24.10.06 09:43) [20]

Аха, как будто не судьба, сразу проверить открываемый файл, на соответствие формата и целостность


Ketmar   (2006-10-24 09:43:00) [6]

>[19] Gydvin(c) 24-Oct-2006, 09:11
>Странный баг.
это не "странный". это достаточно логично: зачем преобразовывать jpg, пока его не надо выводить? как понадобилось -- тут и преобразовали. и с размаху сели на грабли. %-)


Gydvin   (2006-10-24 09:11:00) [7]

Странный баг.
Автор пробуйте так

var
 jpg: tjpegimage;
begin
 jpg := tjpegimage.Create;
 try
   jpg.LoadFromFile('my jpeg');
   image1.Picture.Bitmap.Assign(jpg);
 except
   showmessage('Error');
   jpg.Free;
   exit;
 end;
 ...
  jpg.Free;


Ketmar   (2006-10-24 07:26:00) [8]

да хоть 666. ноги у них всех из одного места растут. %-)


ASoft   (2006-10-24 07:11:00) [9]


> Текстовым файлом с расширением измененным на .Jpg я предложил
> иммитировать  испорченный файл который есть у меня - эффект
> оди и тот же.

c разницей: если файл пуст - ошибка #42 (типа, неожиданный конец файла), если текст - #53 (может, наверное и #52)


Ketmar   (2006-10-23 20:31:00) [10]

>[14] Anatoly Podgoretsky(c) 23-Oct-2006, 20:28
но факт в том, что говорит именно JPEG error. и в совершенно нелогичном месте. честно признаться -- сам не знал о таком поведении.


mahab   (2006-10-23 20:31:00) [11]

Текстовым файлом с расширением измененным на .Jpg я предложил иммитировать  испорченный файл который есть у меня - эффект оди и тот же.


Anatoly Podgoretsky   (2006-10-23 20:28:00) [12]

Нулевой файл = пустой Picture
Нулевой файл легко отлавливается. Наверно не надо рассказывать как?


Ketmar   (2006-10-23 20:21:00) [13]

>[12] Dmitrij_K 23-Oct-2006, 20:18
а у меня -- как автор описал. %-)


Dmitrij_K   (2006-10-23 20:18:00) [14]

[3] при попытки загрузить пустой jpg файл работает как положено
Delphi7

мдя...


Ketmar   (2006-10-23 20:15:00) [15]

>[8] mahab(c) 23-Oct-2006, 20:13
>Да, но мне не надо преобразовывать
а придётся. %-)


mahab   (2006-10-23 20:15:00) [16]

> чтобы выполнялся код между Except  и End
а этого не происходит


Ketmar   (2006-10-23 20:14:00) [17]

>[7] Dmitrij_K 23-Oct-2006, 20:08
>Файл испорчен или недоступен
D7. исключение не вываливается, если a.jpg нулевого размера. вываливается исключение при попытке TImage отрисоваться. так что автор прав. см. [6].


mahab   (2006-10-23 20:13:00) [18]

>Ketmar ©   (23.10.06 20:02) [6]
>преобразовывать jpeg в битмап самому.
Да, но мне не надо преобразовывать , мне нужно только обьявить о том, файл - плохой, а для этого мне необходимо, чтобы выполнялся код между Except  и End.


Dmitrij_K   (2006-10-23 20:08:00) [19]


> Кстати попробуйте создать пустой текстовый файл измените
> расширение м загрузить в Timage с таким кодом.

Файл испорчен или недоступен

???


Ketmar   (2006-10-23 20:02:00) [20]

>[5] Dmitrij_K 23-Oct-2006, 19:50
>помогает
хм. вынужден извиниться перед автором вопроса. действительно, не помогает. исключение возникает не при загрузке jpg, а при попытке преобразования его. каковая попытка предпринимается, когда надо отобразить TImage. решать можно разными путями. простейший -- преобразовывать jpeg в битмап самому.


Страницы:   1 2

Наверх

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