Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1161277797
funky
2006-10-19 21:09
2006.11.05
окно зависает


2-1161162394
webpauk
2006-10-18 13:06
2006.11.05
TtreeItem разноцветный


15-1161020542
55_Ald
2006-10-16 21:42
2006.11.05
Как защитить dll от несанкционированного копирования?


3-1157968378
Neo Trinitron
2006-09-11 13:52
2006.11.05
MS Jet 4 и вложенные транзакции


2-1161163551
dim2001
2006-10-18 13:25
2006.11.05
строка колонка stringgrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский