Russian Qt Forum
Ноябрь 25, 2024, 05:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Как быстро сохранить изображение большого размера?  (Прочитано 19391 раз)
¤Se®ega¤
Гость
« : Апрель 19, 2009, 14:01 »

есть объек класса QPixmap с размерами (2500,2000), на котором я рисую какие-то кракозябры с высокой частотой(50-60 fps),потом этот объект я сохраняю в буфер (buffer->open(QIODevice::WriteOnly);pixmap->save(buffer, "PNG")Подмигивающий.Частота сохранения изображения в буфеп порядка 1 fps. Как мне ускорить этот процесс?(картинка рисуется на сервера и передается клиентом чрес сокет).
Записан
Rcus
Гость
« Ответ #1 : Апрель 19, 2009, 15:04 »

2500*2000*4 это 2*10^6 байт. Вполне помоему нормальная скорость записи (да я знаю про lossless сжатие).

На мой взгляд вы пытаетесь заново изобрести аналог X11 или RDP.
Записан
¤Se®ega¤
Гость
« Ответ #2 : Апрель 19, 2009, 18:04 »

Тоесть это вполне нормально?Просто от меня требуют чтобы частота соранения была тоже порядка 50 раз в секунду, я подумал, может я че не так делаю.Может использовать другой формат?
Записан
Rcus
Гость
« Ответ #3 : Апрель 19, 2009, 18:29 »

Ну посмотрите как реализованы X Windows System и RDP, там идет передача не изображений, а команд соответственно X11 и GDI. Правда все равно 50 fps... К чему такие сложности, зачем вообще нужно создавать проблемы с передачей изображений по сети и затем с ними бороться?
Записан
SABROG
Гость
« Ответ #4 : Апрель 21, 2009, 09:10 »

Я например не понял такой момент. По сокету передается несжатый QPixmap, затем сервер его его пожимает в PNG?
Если так, то выход я вижу в следующем:
- на сервер передается размер картинки и её параметры
- вместо того, чтобы передавать картинку целиком - на сервер передаются команды рисования мышкой. Кликнул по какому-то пикселю - через сокет передался индекс пикселя и цвет. Можно сделать небольшой буффер, который будет отправляться после того как заполнится необходимым количеством действий.
Если не хочется нагружать сервер, то передавать только QRect измененной области (как diff в svn/cvs/git), предварительно пожав его через qCompress.
Записан
spirit
Гость
« Ответ #5 : Апрель 21, 2009, 09:23 »

qCompress достаточно медленно работает.
Записан
¤Se®ega¤
Гость
« Ответ #6 : Апрель 21, 2009, 10:05 »

Мне надо передавать именно картинку, большого размера, с частотой 50 раз в секунду.
Записан
spirit
Гость
« Ответ #7 : Апрель 21, 2009, 10:14 »

не знаю на сколько это будет производительно,
но что если насобирать 50 картинок и потом раз в секунду их отсылать,
а уже на стороне клиент их показывать по очереди.
Записан
Rcus
Гость
« Ответ #8 : Апрель 21, 2009, 10:23 »

/*думает что скоро обсуждение дойдет до кодирования видеопотока*/
Записан
spirit
Гость
« Ответ #9 : Апрель 21, 2009, 10:26 »

/*думает что скоро обсуждение дойдет до кодирования видеопотока*/
+1  Смеющийся
Записан
¤Se®ega¤
Гость
« Ответ #10 : Апрель 21, 2009, 10:47 »

можно и так, но вся проблема на данном этапе заключается именно в том, что при сохранении картинки проходит много времени( 1 секунда), думаю если в секунду сохранять 50 картинок, то этот интервал увеличится )))и толку не будет.
Записан
Rcus
Гость
« Ответ #11 : Апрель 21, 2009, 10:52 »

Тяжело мне, да и, возможно, не только мне, давать советы не зная контекста использования. Может быть вы нам расскажете немного об использовании.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #12 : Апрель 21, 2009, 10:52 »

А где можно увидеть полный код получения\сохранения\передачи изображения?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
spirit
Гость
« Ответ #13 : Апрель 21, 2009, 10:53 »

пробуй уменьшать качество.
Записан
SABROG
Гость
« Ответ #14 : Апрель 21, 2009, 11:15 »

А можно подробней о предназначении программы?

А что qCompress будет все-равно медленным, если степень сжатия поставить 1?
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 23.