Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Внизjpeg Найти похожие ветки
← →
mahab © (2006-10-23 19:36) [0]Здравствуйте! У меня есть испорченный JPEG. Хотелось бы адекватно обработать исключительную ситуацию "Jpeg error #42" на загрузку в компонент Timage.Блок Try ... Except..end не помогает.
← →
Dmitrij_K (2006-10-23 19:38) [1]
> Try ... Except..end не помогает.
Чё, правда?
← →
Ketmar © (2006-10-23 19:39) [2]>[0] mahab(c) 23-Oct-2006, 19:36
>Блок Try ... Except.. end не помогает.
а не пробовал кроме упоминания на форуме ещё и в исходный код его вписывать? %-)
если "не помогает", то что-то ты делаешь неверно. код показывай.
← →
mahab © (2006-10-23 19:45) [3]Примерно так:
If not OpenPictureDialog1.Execute then exit;
Try
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
except
showmessage("Файл испорчен или недоступен");
end;
← →
mahab © (2006-10-23 19:48) [4]Кстати попробуйте создать пустой текстовый файл измените расширение м загрузить в Timage с таким кодом.
← →
Dmitrij_K (2006-10-23 19:50) [5]
> Примерно так:
> If not OpenPictureDialog1.Execute then exit;
> Try
> Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
> except
> showmessage("Файл испорчен или недоступен");
> end;
> Try ... Except..end не помогает.
помогает
← →
Ketmar © (2006-10-23 20:02) [6]>[5] Dmitrij_K 23-Oct-2006, 19:50
>помогает
хм. вынужден извиниться перед автором вопроса. действительно, не помогает. исключение возникает не при загрузке jpg, а при попытке преобразования его. каковая попытка предпринимается, когда надо отобразить TImage. решать можно разными путями. простейший -- преобразовывать jpeg в битмап самому.
← →
Dmitrij_K (2006-10-23 20:08) [7]
> Кстати попробуйте создать пустой текстовый файл измените
> расширение м загрузить в Timage с таким кодом.
Файл испорчен или недоступен
???
← →
mahab © (2006-10-23 20:13) [8]>Ketmar © (23.10.06 20:02) [6]
>преобразовывать jpeg в битмап самому.
Да, но мне не надо преобразовывать , мне нужно только обьявить о том, файл - плохой, а для этого мне необходимо, чтобы выполнялся код между Except и End.
← →
Ketmar © (2006-10-23 20:14) [9]>[7] Dmitrij_K 23-Oct-2006, 20:08
>Файл испорчен или недоступен
D7. исключение не вываливается, если a.jpg нулевого размера. вываливается исключение при попытке TImage отрисоваться. так что автор прав. см. [6].
← →
mahab © (2006-10-23 20:15) [10]> чтобы выполнялся код между Except и End
а этого не происходит
← →
Ketmar © (2006-10-23 20:15) [11]>[8] mahab(c) 23-Oct-2006, 20:13
>Да, но мне не надо преобразовывать
а придётся. %-)
← →
Dmitrij_K (2006-10-23 20:18) [12][3] при попытки загрузить пустой jpg файл работает как положено
Delphi7
мдя...
← →
Ketmar © (2006-10-23 20:21) [13]>[12] Dmitrij_K 23-Oct-2006, 20:18
а у меня -- как автор описал. %-)
← →
Anatoly Podgoretsky © (2006-10-23 20:28) [14]Нулевой файл = пустой Picture
Нулевой файл легко отлавливается. Наверно не надо рассказывать как?
← →
mahab © (2006-10-23 20:31) [15]Текстовым файлом с расширением измененным на .Jpg я предложил иммитировать испорченный файл который есть у меня - эффект оди и тот же.
← →
Ketmar © (2006-10-23 20:31) [16]>[14] Anatoly Podgoretsky(c) 23-Oct-2006, 20:28
но факт в том, что говорит именно JPEG error. и в совершенно нелогичном месте. честно признаться -- сам не знал о таком поведении.
← →
ASoft (2006-10-24 07:11) [17]
> Текстовым файлом с расширением измененным на .Jpg я предложил
> иммитировать испорченный файл который есть у меня - эффект
> оди и тот же.
c разницей: если файл пуст - ошибка #42 (типа, неожиданный конец файла), если текст - #53 (может, наверное и #52)
← →
Ketmar © (2006-10-24 07:26) [18]да хоть 666. ноги у них всех из одного места растут. %-)
← →
Gydvin © (2006-10-24 09:11) [19]Странный баг.
Автор пробуйте так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 09:43) [20]>[19] Gydvin(c) 24-Oct-2006, 09:11
>Странный баг.
это не "странный". это достаточно логично: зачем преобразовывать jpg, пока его не надо выводить? как понадобилось -- тут и преобразовали. и с размаху сели на грабли. %-)
← →
Gydvin © (2006-10-24 10:23) [21]
> Ketmar © (24.10.06 09:43) [20]
Аха, как будто не судьба, сразу проверить открываемый файл, на соответствие формата и целостность
← →
Ketmar © (2006-10-24 10:25) [22]>[21] Gydvin(c) 24-Oct-2006, 10:23
>Аха, как будто не судьба, сразу проверить открываемый файл,
>на соответствие формата и целостность
в общем случае его для этого всё равно надо декодировать. а вдруг там всего пара байтиков в конце сломана?
← →
Gydvin © (2006-10-24 10:34) [23]
> там всего пара байтиков в конце сломана?
Будет неверно отображаться. :))) Просто сравнивать реально существующий размер данных с заявленным. Имхо это должно отсеч часть ошибок
← →
Ketmar © (2006-10-24 10:44) [24]>[23] Gydvin(c) 24-Oct-2006, 10:34
да понятно, что кучу ошибок можно было отловить в процессе открытия. но -- сделано как сделано.
← →
ASoft (2006-10-24 11:31) [25]
> но -- сделано как сделано.
где? в jpeg.pas?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.041 c