LINUX.ORG.RU

QPixmap и полупрозрачные png


0

1

Есть png-шка с некоторыми прозрачными частями. Например такая. Я накладываю на эту картинку еще одну(флаг страны в нижнем правом углу), и в результате выходит такое. Тобишь вместо прозрачной части я получаю какой-то мусор. Вот код(упрощенный вариант):

QPixmap resultAvatar(defaultAvatar.size());
QPainter p(&resultAvatar);
p.drawPixmap(defaultAvatar.rect(),defaultAvatar);
p.drawPixmap(39,34,QPixmap(countryString));
p.end();

Вопрос: что я не так сделал? Как сделать чтобы прозрачные части оставались прозрачными, а не забивались мусором из памяти?

★☆☆☆

Последнее исправление: drull (всего исправлений: 1)

Вроде всё так. Судя по картинкам результат больше исходника, как такое могло выйти? Проверьте совпадает ли defaultAvatar.size() с реальным. У меня ощущение, что эта картинка имеет дополнительный бордюр.

Dendy ★★★★★
()
Ответ на: комментарий от Dendy

На второй картинке показан мой пиксмап на фоне окна, чтобы было видно что некоторые части картинки вышли не прозрачными. Размеры совпадают.

drull ★☆☆☆
() автор топика
Ответ на: комментарий от zJes

> >>>>resultAvatar.fill(Qt::transparent);

Спасибо!

drull ★☆☆☆
() автор топика
Ответ на: комментарий от zJes

Кстати обнаружил чтотак тоже все работает:

[code]QPixmap resultAvatar(defaultAvatar);
QPainter p(&resultAvatar)
p.drawPixmap(39,34,QPixmap(countryString));
p.end();[/code]

drull ★☆☆☆
() автор топика
Ответ на: комментарий от drull

Конечно :)
В первом случае ты просто сделал не инициализированный имидж, а потом туда рисовал, конечно же мусор будет.

zJes ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.