Название: Смешивание 2-х изображенией по альфа-каналу Отправлено: artiom_kh от Сентябрь 27, 2011, 11:44 Добрый день! Необходимо отрисовать по некой заданной маске картинку через QPainter, маска задана тоже неким пиксмапом:
(http://www49.zippyshare.com/i/82491987/299901/mask_example.png) если картинку невидно - то http://www49.zippyshare.com/v/82491987/file.html на картинке слева - маска, посередине - изображение, справа - желаемый результат Название: Re: Смешивание 2-х изображенией по альфа-каналу Отправлено: slim от Сентябрь 27, 2011, 12:00 попробуй setMask
Название: Re: Смешивание 2-х изображенией по альфа-каналу Отправлено: artiom_kh от Сентябрь 27, 2011, 12:04 попробуй setMask спасибо, хотелось бы добиться результата путём выбора режима смешивания (QPainter::CompositionMode), без QPixmap::setMask и без обрезки по регионуНазвание: Re: Смешивание 2-х изображенией по альфа-каналу Отправлено: artiom_kh от Октябрь 11, 2011, 10:07 решение найдено - но не совсем то что хотелось бы:
Код
если сначала отрисовать всё в QPixmap а затем вывести на виджет в paintEvent то всё ок: Код
[скриншот - http://www35.zippyshare.com/v/78683668/file.html] а вот когда рисуешь непосредственно на виджете, то получаем чёрную область на месте предполагаемой прозрачности: Код [скриншот - http://www35.zippyshare.com/v/32651042/file.html] аналогичную чёрную область можно получить и при отрисовке в темповый pixmap (v1), если выставить виджету аттрибут: Код
похожая проблема описана вот здесь: http://www.qtcentre.org/threads/43614-transparency-problem.-pls-help. там челу посоветовали юзать темповый pixmap, данный вариант не подходит мне по производительности и использованию памяти, может есть какая-то возможность настроить QPainter так что-бы при отрисовке на виджете результат был аналогичен тому что и при отрисовке в QPixmap (хотя по логике вещей он и должен быть таковым)? |