Название: Создание QPixmap из памяти Отправлено: Crazy Sage от Октябрь 17, 2012, 18:21 Есть у меня прога получающая кадры с фотоаппарата и обрабатывающая их.
Раньше я сохранял изображения на диск, открывал, обрабатывал и снова сохранял. Сейчас копирую изображение сразу в память, обрабатываю и сохраняю. Передача с камеры не особо ускорилась, это понятно, там usb накладывает ограничения по скорости. Но меня несколько удивляет, что для изображения в 6 мегабайт QPixmap::load() работает всего на 30% медленнее, чем QPixmap::loadFromData(). Это нормально? И может есть способ использовать сразу QPixmap (ну или какой-нибудь другой класс для изображения) в качестве принимающего буфера для ускорения процесса? С камеры идет jpeg, но высота и ширина заранее неизвестны (по крайней мере я не нашел как их получить). Название: Re: Создание QPixmap из памяти Отправлено: GreatSnake от Октябрь 17, 2012, 18:26 Для таких дел нужно использовать QImage.
Название: Re: Создание QPixmap из памяти Отправлено: Crazy Sage от Октябрь 17, 2012, 18:48 При использовании операций loadFromData, transformed, scaledToWidth и save разницы между QPixmap и QImage в производительности замеры не показали.
Название: Re: Создание QPixmap из памяти Отправлено: GreatSnake от Октябрь 17, 2012, 19:34 При использовании операций loadFromData, transformed, scaledToWidth и save разницы между QPixmap и QImage в производительности замеры не показали. Не верю.Название: Re: Создание QPixmap из памяти Отправлено: Crazy Sage от Октябрь 17, 2012, 20:02 Ну я даже полную пересборку сделал под такое дело, но нет. Что с QPixmap, что с QImage на создание объекта из QByteArray размером ~6мегабайт уходит ~0.7 сек, на сохранение этого изображения на диск ~1 сек, поворот и изменение размера вместе занимают на порядок меньше времени, поэтому их производительность я не сравнивал.
Название: Re: Создание QPixmap из памяти Отправлено: Igors от Октябрь 17, 2012, 20:10 Ну я даже полную пересборку сделал под такое дело, но нет. Что с QPixmap, что с QImage на создание объекта из QByteArray размером ~6мегабайт уходит ~0.7 сек, на сохранение этого изображения на диск ~1 сек, поворот и изменение размера вместе занимают на порядок меньше времени, поэтому их производительность я не сравнивал. Ну сохранение = 1 сек выглядит реально учитывая что имедж нужно сжать. А вот создание = 0.7 сек - да откуда? Выделение памяти и копирование - порядок ну никак не 0.7. Может нагружено чем-то еще? Название: Re: Создание QPixmap из памяти Отправлено: Crazy Sage от Октябрь 17, 2012, 20:16 Замер времени непосредственно перед, замер сразу после. Меня тоже удивляет, что так долго.
Вот код Код: EdsStreamRef stream = NULL; Название: Re: Создание QPixmap из памяти Отправлено: Igors от Октябрь 17, 2012, 20:31 А, так это "распаковка" из исходного jpg (а не просто создание). Ну тогда разумное время. И это "не масштабируется" и не ускоряется.
Название: Re: Создание QPixmap из памяти Отправлено: Crazy Sage от Октябрь 17, 2012, 20:32 Ок, именно это я и хотел узнать. Не ускоряется, значит не ускоряется :)
|