crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QPixmap, Как сделать прозроачный пихмэп ?
flankerr
  опции профиля:
сообщение 3.7.2008, 16:32
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


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

Предположим есть у меня QPixmap в него рисуються некие графики. Есть другой QPixmap туда рисуется фон.
задача наложить первы QPixmap на второй, так чтобы у первого пиксмепа в качетсве фона был второй.
Пиксмэпки рисуються в разное время и на момент наложеия есть именно две пиксмэпки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 3.7.2008, 16:44
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Это пойдет?
Transparent Backgrounds in Qt 4.1
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 3.7.2008, 16:48
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(ViGOur @ 3.7.2008, 17:44) *


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

Сообщение отредактировал flankerr - 3.7.2008, 16:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sploid
  опции профиля:
сообщение 3.7.2008, 17:33
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 26.2.2008
Из: Москва
Пользователь №: 106

Спасибо сказали: 10 раз(а)




Репутация:   1  


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

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

Вроде должно сработать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 4.7.2008, 10:48
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


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

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

Сообщение отредактировал flankerr - 4.7.2008, 10:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sploid
  опции профиля:
сообщение 4.7.2008, 14:05
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 26.2.2008
Из: Москва
Пользователь №: 106

Спасибо сказали: 10 раз(а)




Репутация:   1  


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
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(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
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 26.2.2008
Из: Москва
Пользователь №: 106

Спасибо сказали: 10 раз(а)




Репутация:   1  


последний параметр должен быть 0, а не 255.
QPixmap img;
img.fill(QColor(0,0,0,0));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.4.2021, 19:10