Название: Вывести массив пикселей на экран Отправлено: Torvald от Апрель 08, 2011, 20:50 Здравствуйте) Возник вопрос, с которым самостоятельно никак не могу разобраться.
Имеется указатель на массив типа int: Код: int *a = new[this->width()*this->height()]; Как бы мне его вывести на экран? Да чтоб разом и быстро и красиво) Когда то давно я писал на билдере, там можно создать битмап а потом получить указатель на строчку пикселей в нем. Функция называлась scanline. Можно было работать с ним как с простым массивом, а потом в одну функцию отобразить на экране. Получалось как раз быстро, коротко и красиво. Что я уже перепробовал в Qt: Код: void MainWindow::paintEvent(QPaintEvent *){ В первом случае я заполняю экран по одному пикселю (drawPoint). Самый тупой метод, его я отбросил сразу, но до кучи решил добавить. Время заполнения экрана 1600х900 примерно 360-430 мс. Ужас. Во втором случае я создаю указатель на массив точек, и вывожу на экран все эти точки разом (drawPoints). Результат конечно получше стал, но для интерактивной графики все равно не подходит. 18-29 мс. Третий метод, на который я возлагал большие надежды - отрисовка пиксмапа (drawPixmap). Я так понял это один из самых примитивных классов для хранения растровой графики в Qt? Что то типа битмапа на билдере. В общем таймер показал 0 мс. Но самое главное - как заполнить этот пихмап своими значениями? Можно как то получить от него указатель на массив пикселей? Как это вообще можно сделать в Qt? Хочется свободно изменять значения, а потом отображать их. Кстати, это все для z-буфера) Название: Re: Вывести массив пикселей на экран Отправлено: Kolobok от Апрель 08, 2011, 21:04 QImage
Название: Re: Вывести массив пикселей на экран Отправлено: Torvald от Апрель 09, 2011, 12:34 Блииин ;D А слона то я и не приметил. Есть же еще QImage)
Спасибо большое! |