"Приоткрытие" изображений |
Здравствуйте, гость ( Вход | Регистрация )
"Приоткрытие" изображений |
Elfinit |
17.3.2009, 16:16
Сообщение
#1
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Стандартный метод загрузки изображения - QImage::load. При достаточно большом изображении занимает довольно длительное время (ощутимое,по крайней мере).
Что заметил в существующих программах. Пикаса, к примеру (имею ввиду Picasa Photo Viewer). При перелистывании фоток если фотка объёмная, то изображение сначала показывается размытым, и через некоторое время заменяется чётким. При этом вроде как никаких кэшированных изображений нет (да если бы и были, на создание миникопии для кэша затрачивалось бы время,не оправданное задачей). Т.е. происходит открытие изображения сначала в плохом качестве, параллельно грузится "полноценная" фотка и заменяется при завершении загрузки. Какое-то "приоткрытие", если можно так сказать. Другой пример - режим "эскизы страниц" или "диафильм" в винде. Превьюшки опять-таки создаются практически моментально, независимот от того, насколько велика фотка. Вопрос такой - кто-нибудь что-нибудь знает о программной реализации этого в Qt? Возможно, что-то вроде асинхронного чтения изображений (beginLoad/endLoad какой-нибудь). Или всё-таки показывать сначала картинку плохого качества (будем считать, что она всё-таки есть), при этом запускать поток загрузку полноценной фотки и заменять плохую на полноценную? Выделять это действие в отдельный поток, по-моему, не совсем...Элегантно))) Как-то же это делают) |
|
|
Elfinit |
17.3.2009, 16:34
Сообщение
#2
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Т.е. например при перелистывании фоток на кажду фотку стартовать отдельный поток, или всегда держать один, который будет ждать запроса?
А что, если переход на следующую фотку будет запрошен раньше,чем загрузится текущая? А в режиме слайд-шоу как предусмотреть все варианты?)) Вообще, в целом не горит, просто жутко интересно, как это делается.. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 16:11 |