Qt QPainter CompositionMode解读及图片透明度设置

前言

Qt的QPainter十分强大,设置不同的组合模式,可以得到迥然不同的结果,比如调节图片的透明度等,因此是否有必要弄清除QPainter的组合模式代表的意义。

研究相关

  • Source指的是绘制的输入,Destination指的是目的绘制区域本来存在的像素。
  • 本文使用"Compositon Modes"程序对QPainter的组合模式进行解读,其中花是绘制区域原来存在的像素,椭圆是绘制的输入,Circle color是椭圆的的RGB通道数值,circle alpha是椭圆的透明通道数值。

QPainter::CompositionMode

QPainter::CompositionMode_SourceOver

  • Qt帮组文档描述:This is the default mode. The alpha of the source is used to blend the pixel on top of the destination.
  • SourceOver是默认的绘制模式,绘制结果 = 绘制输入*ratio_source + 目的区域原来像素 * ratio_destination。ratio_source和ratio_destination取决于绘制输入的alpha通道值与绘制区域的alpha通道数值的比值(大部分取决于绘制区域的alpha数值,关系不是线性)。
    • 测试数据
目的区域像素 输入像素 结果
(255, 255, 255, 10) (0, 0, 0, 100) (14, 14, 14, 102)
(255, 255, 255, 10) (0, 0, 0, 200) (3,3,3,202)
(255, 255, 255, 10) (0, 0, 0, 255) (0, 0, 0, 255)
(255, 255, 255, 255) (100, 0, 0, 200) (133, 55, 55, 255)
(255, 255, 255, 0) (0, 0, 0, 200) (0, 0, 0, 200)

SourceOver在这里插入图片描述

QPainter::CompositionMode_Source

  • Qt帮组文档描述:The output is the source pixel. (This means a basic copy operation and is identical to SourceOver when the source pixel is opaque).
  • Source模式:绘制结果 = 绘制输入,目的绘制区域原来的像素被完全覆盖。
  • 当绘制输入的Alpha通道为255(不透明时
  • 10
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值