Главная страница
    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.04 c
15-1161152975
Alien1769
2006-10-18 10:29
2006.11.05
Прошу помощь по физике /куда копать, источник, ссылку/


2-1160983161
Dr. Genius
2006-10-16 11:19
2006.11.05
Drag n Drop для файлов из проводника с использованием OnDragOver


9-1138054239
Аццкий_рыцарь:)
2006-01-24 01:10
2006.11.05
TBackGroundSprite В DelphiX...


1-1159196321
newbie2
2006-09-25 18:58
2006.11.05
Какой сhart в "Домашние финансы"


15-1160755195
Koldun
2006-10-13 19:59
2006.11.05
Измерение FPS в играх





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский