• 12283阅读
  • 5回复

[原创]QT用如何把两个图片合成在一起,设置一个alpha,让两个图片在一个控件上显示呢 [复制链接]

上一主题 下一主题
离线foxgod
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-23
QT用如何把两个图片合成在一起,设置一个alpha,让两个图片在一个控件上显示呢。如图显示

离线ppdayz

只看该作者 1楼 发表于: 2013-05-23
回 楼主(foxgod) 的帖子
你的例子程序有源代码,在Qt creator的示例里面就可以找到
离线roywillow

只看该作者 2楼 发表于: 2013-05-23
回 楼主(foxgod) 的帖子
我记得这正是qpainter的composition mode的几个参数
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线foxgod

只看该作者 3楼 发表于: 2013-05-24
回 2楼(roywillow) 的帖子
用网上给的例子没实现呀,求给个例子
离线foxgod

只看该作者 4楼 发表于: 2013-05-24
回 2楼(roywillow) 的帖子

    image->load(fileName);


    // Scale the image to given size
    *image = image->scaled(resultSize, Qt::KeepAspectRatio);


    QImage fixedImage(resultSize, QImage::Format_ARGB32_Premultiplied);
    QPainter painter(&fixedImage);
    painter.setCompositionMode(QPainter::CompositionMode_Source);
    painter.fillRect(fixedImage.rect(), Qt::transparent);
    painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
    painter.drawImage(imagePos(*image), *image);
    painter.end();
    button->setIcon(QPixmap::fromImage(fixedImage));


    *image = fixedImage;
这个没看明白呀,就是image载入一个存在的图片, fixedImage是对一个区域操作,也没图片实例;先ainter.setCompositionMode(QPainter::CompositionMode_Source);在painter.setCompositionMode(QPainter::CompositionMode_SourceOver);什么意思呀,最后在这个区域画图的时候还
QPoint ImageComposer::imagePos(const QImage &image) const
{
    return QPoint((resultSize.width() - image.width()) / 2,
                  (resultSize.height() - image.height()) / 2);
}
是什么意思
离线roywillow

只看该作者 5楼 发表于: 2013-05-24
回 4楼(foxgod) 的帖子
为啥一定要看网上的例子呢?
你先把qpainter的用法学会了,不看例子也会做
你只需要看看文档就够了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个