Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ QPixmap

Автор: flankerr 3.7.2008, 16:32

Как сделать прозроачный QPixmap ?

Предположим есть у меня QPixmap в него рисуються некие графики. Есть другой QPixmap туда рисуется фон.
задача наложить первы QPixmap на второй, так чтобы у первого пиксмепа в качетсве фона был второй.
Пиксмэпки рисуються в разное время и на момент наложеия есть именно две пиксмэпки.

Автор: ViGOur 3.7.2008, 16:44

Это пойдет?
http://crossplatform.ru/?q=node/286

Автор: flankerr 3.7.2008, 16:48

Цитата(ViGOur @ 3.7.2008, 17:44) *
Это пойдет?http://crossplatform.ru/?q=node/286


Это конечно интересно но меня интересует не виджет, а пиксмэп.

Автор: sploid 3.7.2008, 17:33

а ты у первой картинке в самом начале сделай цвет прозрачный, потом на ней нарисуй графики.

Когда графики будешь выводить, то в начале рисуешь вторую картинку ( где фон ), а потом первую ( где все графики без прозрачности а сам фон прозрачный ).

Вроде должно сработать.

Автор: flankerr 4.7.2008, 10:48

О! Правельно рассуждаешь. Именно это и надо.

ворпос КАК сделать прозрачный фон у первой пиксмыпки ??????
Т.е. чтобы при наложение двух пиксмэпок фоном у первой получался второй. И мне НЕ надо было перирисовывать первую пиксмэпку если я изменил фоновую пиксмэпку

Автор: sploid 4.7.2008, 14:05

void QPixmap::fill ( const QColor & color = Qt::white )

а цвет используй

QColor::QColor ( int r, int g, int b, int a = 255 )

последний параметр это прозрачность.

Автор: flankerr 4.7.2008, 15:48

Цитата(sploid @ 4.7.2008, 15:05) *
void QPixmap::fill ( const QColor & color = Qt::white )
а цвет используй
QColor::QColor ( int r, int g, int b, int a = 255 )
последний параметр это прозрачность.


QPixmap img;
img.fill(QColor(0,0,0,255));
Правельно тебя понял ??? Если так тогда это НЕ работает !

получилось сделать через маску
QPixmap img;
QPainter painter(&img)
painter.end();
img.setMask(img.createHeuristicMask());

Автор: sploid 4.7.2008, 15:51

последний параметр должен быть 0, а не 255.

QPixmap img;
img.fill(QColor(0,0,0,0));

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)