Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.097 c
15-1161158384
VictorT
2006-10-18 11:59
2006.11.05
Требуется квартира в Киеве


3-1157904227
так себе
2006-09-10 20:03
2006.11.05
Подредактируйте запрос


2-1161152032
Tatushka
2006-10-18 10:13
2006.11.05
Свойство ButtonStyle компонента DBGrid


15-1161157669
Думкин
2006-10-18 11:47
2006.11.05
Головоломки профессора Головоломки. Гершензон


15-1160848995
Kolan
2006-10-14 22:03
2006.11.05
Сижу, разговаривю по ICQ с отцом. Он в соседней комнате :)