Russian Qt Forum

Qt => Мультимедиа => Тема начата: Vexator от Сентябрь 07, 2009, 01:39



Название: QPixmap & QImage
Отправлено: Vexator от Сентябрь 07, 2009, 01:39
Доброго времени суток!

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

есть ли возможность сделать это средствами Qt, кроме как попиксельно писать алгоритм?
может еще чего можно прикрутить для этой цели?


Название: Re: QPixmap & QImage
Отправлено: Joss от Сентябрь 07, 2009, 01:56
По поводу поворота смотрите:

http://doc.trolltech.com/4.5/qimage.html#transformed
и QMatrix или QTransform


Название: Re: QPixmap & QImage
Отправлено: Vexator от Сентябрь 07, 2009, 03:09
Ага уже натыкался на это в ассистенте, но не совсем понял о каких трансформациях идет речь, и что такое матрица трансформации для 2х мерного изображения? как допустим сделать зеркальное отражение? или поворот на 90* ? какая должна быть матрица??


Название: Re: QPixmap & QImage
Отправлено: muaddib1981@mail.ru от Сентябрь 07, 2009, 07:05
QPainter.rotate(90);


Название: Re: QPixmap & QImage
Отправлено: Vexator от Сентябрь 07, 2009, 07:24
А как быть с перекраской?


Название: Re: QPixmap & QImage
Отправлено: ecspertiza от Сентябрь 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.


Название: Re: QPixmap & QImage
Отправлено: Vexator от Сентябрь 07, 2009, 08:24
т.е. лучше отказаться от рисования на лету и генерить заранее картинки в разной цветовой гамме? а жаль =(