А что за глюк с картинками??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Gmp
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 22.07.2006 (Сб) 17:04
Откуда: Германия

Сообщение Gmp » 26.07.2006 (Ср) 21:05

keks-n
VB

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.07.2006 (Ср) 21:11

Выход из ситуации: грузить JPEG'и вручную :roll:
Изображение

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 26.07.2006 (Ср) 21:19

keks-n
Не понял... Куда грузить вручную, если программа предназначена для автоматической закачки галерей из Интернета?

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 26.07.2006 (Ср) 21:20

Вообще интересно было бы конечно же научить программу распознавать такие файлы ещё до загрузки в объект для простотра. Только тут нужно хорошее знание формата JPEG, которым я, к сожалению, не обладаю...
Но тем не менее наверное это идеальная панацея.

Gmp
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 22.07.2006 (Сб) 17:04
Откуда: Германия

Сообщение Gmp » 26.07.2006 (Ср) 21:21

keks-n
Мне оно не надо, так для интереса проверил, хотя решение я бы глянул. :)

Кстати On error resume next не помогает. ;)

Если только вычитывать начало с картинок и смотреть нормальный жпег или плохой.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.07.2006 (Ср) 21:32

Не понял... Куда грузить вручную, если программа предназначена для автоматической закачки галерей из Интернета?

Ты его закачал на ДИСК, так? А в смотрелку его грузить придётся руками... Или проверять хотя бы базовое соответствие нормальному файлу, для чего глубокие познания не нужны.
Изображение

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 28.07.2006 (Пт) 0:46

Короче, новые подробности темы.
Скажем, качаем мы файлег jpg, и рвём связь, когда он не докачан (процентов 70-80). Полученный обрезок с определённой степенью вероятности "подвесит" ВБ.

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

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.07.2006 (Пт) 9:21

Выгуглил следущее:

http://edu.internet-academy.org.ge/courses/introduction_to_speciality_2/com_gr/graphics/formats/JPEG.html
http://www.codenet.ru/progr/formt/jpeg_00.php
http://jpeg.org/jpeg/index.html

И со сторонней библой(Intel JPEG Library):
http://www.vbaccelerator.com/home/VB/Co ... rticle.asp

+Обёртка для GDI+ должна что-то уметь.
Изображение

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 28.07.2006 (Пт) 18:17

keks-n
Спасибо, отличный материал!

Возможно теперь есть способ написать даже своеобразного "доктора jpeg", отлавливающего ошибки до открытия и сохраняя неповреждённые данные для просмотра!

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 29.07.2006 (Сб) 11:28

Разбираюсь с форматом дальше...

А пока вот ещё какая хрень всплыла - иногда обрезанное изображение jpg даже не подвешивает скомпилированную VB-прогу, а выдаёт неустранимую ошибку!!!

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

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 30.07.2006 (Вс) 22:11

Пишешь отдельную прогу, которой передаёшь путь к файлу и hDC... Файл она подгрузит и скопирует в hDC. Основная не виснет и не падает. А побочную можно и прибить.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.07.2006 (Вс) 22:27

hDC в каждом процессе свои.
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 31.07.2006 (Пн) 8:20

Конвертить в bmp :roll: А потом основная прога подгрузит.
Изображение

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

    TopList