QT6 源,十章绘图(8)画家 QPainter 篇一:构造函数,开启本地绘图,渲染提示,像素混合,设置字体画笔画刷,画刷原点,背景画刷与透明模式及透明度,文本绘制方向,剪切相关,坐标系变换与视口窗口

(1)在 QT 的绘图功能里, 类 QPainter 是重要的代码支撑,其提供了绘制文字,绘制基本图形的功能。 以此叠加,就可以构成复杂的图案生成。
本类的继承关系如下

在这里插入图片描述

++ 开始学习本类的成员函数

在这里插入图片描述

(2)继续

在这里插入图片描述

++以及

在这里插入图片描述

++开启本地绘图指令

在这里插入图片描述

(3)渲染提示

在这里插入图片描述

++以及

在这里插入图片描述

(3) 接着学习图像混合模式

在这里插入图片描述

++ 举例的框架,本文的测试都拿这个例子

在这里插入图片描述

++
在这里插入图片描述
++

在这里插入图片描述

++这些颜色的测试需要 alpha 值,目前还不会,不再测试了 :

在这里插入图片描述
++

/*
    定义了数字图像合成所支持的模式。合成模式用于指定源图像中的像素如何与目标图像中的像素进行合并。
    请注意,以“RasterOp”前缀表示的位元级光栅操作模式仅原生支持于X11和光栅绘图引擎中。
    这意味着在Mac上使用这些模式的唯一途径是通过QImage。
    表示混合模式的RasterOp模式不适用于具有Alpha组件的笔刷。
    此外,开启QPainter::Antialiasing渲染提示将有效禁用RasterOp模式。

    最普遍的类型是SourceOver(通常简称为alpha混合),
        其中源像素以特定方式与目标像素融合,使得源像素的alpha分量决定了该像素的半透明程度。

    几种合成模式要求在源图像或目标图像中包含一个alpha通道才能产生效果。
    为了获得最佳性能,建议使用“Format ARGB32 Premultiplied”图像格式。

    设置合成模式后,它将应用于所有绘画操作、笔刷、渐变和像素图/图像绘制。
    */
    enum CompositionMode {
        CompositionMode_SourceOver, //这是默认模式。源的alpha值用于将像素混合到目标之上。
                                    //总之,意思是源图片在目标图片上面
        CompositionMode_DestinationOver,//目标像素的alpha值用于将其叠加到源像素上。
                                        //此模式是CompositionMode_SourceOver的逆操作。

        CompositionMode_Clear,      //目标中的像素被清除(设置为完全透明),与源无关。
        
        CompositionMode_Source,     //输出是源像素。
        //(这意味着这是一个基本的复制操作,并且当源像素不透明时与SourceOver相同)
        CompositionMode_Destination,//输出是目标像素。这意味着混合没有效果。
        //此模式与CompositionMode Source的相反
        
        CompositionMode_SourceIn,     //输出是源,其中alpha值减去目标的alpha值。
        CompositionMode_DestinationIn,//输出是目标,其中alpha值会根据源的alpha值进行减少。
        //此模式与CompositionMode Sourcelnverse相反。。
        
        CompositionMode_SourceOut,    //输出是源,其中alpha值通过目的地的倒数进行减少。
        CompositionMode_DestinationOut,
        
        CompositionMode_SourceAtop,
        CompositionMode_DestinationAtop,
        CompositionMode_Xor,

        //svg 1.2 blend modes
        CompositionMode_Plus,
        CompositionMode_Multiply,
        CompositionMode_Screen,
        CompositionMode_Overlay,
        CompositionMode_Darken,
        CompositionMode_Lighten,
        CompositionMode_ColorDodge,
        CompositionMode_ColorBurn,
        CompositionMode_HardLight,
        CompositionMode_SoftLight,
        CompositionMode_Difference,
        CompositionMode_Exclusion,

        // ROPs
        RasterOp_SourceOrDestination,
        RasterOp_SourceAndDestination,
        RasterOp_SourceXorDestination,
        RasterOp_NotSourceAndNotDestination,
        RasterOp_NotSourceOrNotDestination,
        RasterOp_NotSourceXorDestination,
        RasterOp_NotSource,
        RasterOp_NotSourceAndDestination,
        RasterOp_SourceAndNotDestination,
        RasterOp_NotSourceOrDestination,
        RasterOp_SourceOrNotDestination,
        RasterOp_ClearDestination,
        RasterOp_SetDestination,
        RasterOp_NotDestination
    };

(4)字体

在这里插入图片描述

(5)画笔

在这里插入图片描述

(6)画刷

在这里插入图片描述

++测试一下

在这里插入图片描述

(7)画刷原点

在这里插入图片描述

(8) 背景画刷

在这里插入图片描述

++补充, 文本绘制方向

在这里插入图片描述

(9)剪切路径? 不懂,老师在课本上没讲, 先记录下

在这里插入图片描述

++以及

在这里插入图片描述

(10)坐标变换

在这里插入图片描述

++更为基础的坐标矩阵变换

在这里插入图片描述

++测试一下

在这里插入图片描述

(11)物理设备坐标系与逻辑坐标系

在这里插入图片描述

++ 可见,不进行任何坐标设置,视口与窗口坐标系也是存在的,只是与窗体画板的内容矩形重合

在这里插入图片描述

++测试验证

在这里插入图片描述

(12) 下一篇介绍各种绘几何图形的函数。

(13)

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangzhangkeji

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值