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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPixmap & QImage  (Прочитано 9481 раз)
Vexator
Гость
« : Сентябрь 07, 2009, 01:39 »

Доброго времени суток!

Есть картинка в png, надо получить такую же но:
развернуть ее на 90*
заменить все точки красного цвета на синего...

есть ли возможность сделать это средствами Qt, кроме как попиксельно писать алгоритм?
может еще чего можно прикрутить для этой цели?
Записан
Joss
Гость
« Ответ #1 : Сентябрь 07, 2009, 01:56 »

По поводу поворота смотрите:

http://doc.trolltech.com/4.5/qimage.html#transformed
и QMatrix или QTransform
Записан
Vexator
Гость
« Ответ #2 : Сентябрь 07, 2009, 03:09 »

Ага уже натыкался на это в ассистенте, но не совсем понял о каких трансформациях идет речь, и что такое матрица трансформации для 2х мерного изображения? как допустим сделать зеркальное отражение? или поворот на 90* ? какая должна быть матрица??
Записан
muaddib1981@mail.ru
Гость
« Ответ #3 : Сентябрь 07, 2009, 07:05 »

QPainter.rotate(90);
Записан
Vexator
Гость
« Ответ #4 : Сентябрь 07, 2009, 07:24 »

А как быть с перекраской?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Сентябрь 07, 2009, 08:18 »

Тут мне кажется только попиксельно и как то так
Код:
for (int i = 0;i<imgPainter.size().width();i++)
        for(int j = 0;j<imgPainter.height();j++)
        {
            QRgb rgb = imgPainter.pixel(i,j);

            if (qRed(rgb) > (255/2))
                imgPainter.setPixel(i,j,qRgb(0,0,255));
        }

imgPainter это объект класса QImage.
Записан
Vexator
Гость
« Ответ #6 : Сентябрь 07, 2009, 08:24 »

т.е. лучше отказаться от рисования на лету и генерить заранее картинки в разной цветовой гамме? а жаль =(
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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