Qt如何把图片的一块区域变透明

[复制链接]
查看11 | 回复9 | 2021-1-27 06:21:08 | 显示全部楼层 |阅读模式
一个QPixmap或者QImage图片,想把图片上某块矩形区域变成透明,要怎么做?
如果是变成其它颜色,拿QPainter往上凃就可以了,可是透明色涂了等于白凃,要怎么做呢?

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
透明跟颜色有关系吗,透明是透明,颜色是颜色,根本是两回事吧。。。
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
请下载photoshop软件
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
引用1楼pppppp11的回复:透明跟颜色有关系吗,透明是透明,颜色是颜色,根本是两回事吧。。。
RGBA,简单说就是想改A
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
引用2楼qt_dog的回复:请下载photoshop软件
透明区域是动态计算出来的
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
搜下“QT异形控件”或者“QT异形窗口”就是你要的。
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
3楼正解,应该需要启用alphachannel也就是rgba颜色空间的a,你要是不嫌麻烦就直接改图像数据,用rgba格式加载图像,获取了图像裸数据之后,把要修改的矩形区域的像素区块的a值改成0就行了应该。也就是对每个pixel进行操作。qt应该还没有一次性到位的处理方法。
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
可以试试OpacityMask遮罩层吧,不太清楚你要的效果,用遮罩层虽然不能透明但是用来在一个图片内显示其他内容还是可以的
,遮罩层可以移动能动态计算需要显示和遮挡的位置
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
setWindowOpacity(0.5);QWidget的方法可以设置透明度
回复

使用道具 举报

千问 | 2021-1-27 06:21:08 | 显示全部楼层
看看那个imagecompositionexample例子,是那个蝴蝶的例子。希望能够引起你的启发。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行