QT6 源,十章绘图(10)画家 QPainter 篇三:绘制图片与平铺图片,绘制文本

(20) 绘制图片与平铺图片

在这里插入图片描述

++举例

在这里插入图片描述

(21) 绘制 pixmap 的成员函数很多

在这里插入图片描述

++以及

在这里插入图片描述

++以及

在这里插入图片描述

++

在这里插入图片描述

++

在这里插入图片描述

(22) drawPicture

在这里插入图片描述

(23) drawImage ,高度类似于 drawPixmap, 但多了图像转换的函数形参 Qt::ImageConversionFlags

在这里插入图片描述
++源码版本

    // Image conversion flags.  The unusual ordering is caused by
    // compatibility and default requirements.
    // 图像转换标志。这种不寻常的顺序是由兼容性和默认要求引起的。
    //如果列表中没有包含其他值,则设置标记为“(默认)”的选项(因为默认值是零)
    enum Qt::ImageConversionFlag {
        ColorMode_Mask          = 0x00000003, //掩码

        AutoColor               = 0x00000000,
        //(默认)-如果图像具有深度为1且仅包含黑白像素,则pixmap将变为单色。

        ColorOnly               = 0x00000003, //pixmap被抖动/转换为本地显示深度。
         MonoOnly               = 0x00000002, //pixmap变成单色。
        //如有必要,使用所选的抖动算法进行抖动处理。
        // Reserved             = 0x00000001,

        AlphaDither_Mask        = 0x0000000c, //掩码,1位alpha掩码的抖动模式偏好:
        ThresholdAlphaDither    = 0x00000000, //(默认)-无抖动。
          OrderedAlphaDither    = 0x00000004, //更快、有序的抖动。
          DiffuseAlphaDither    = 0x00000008, //使用误差扩散的高质量抖动。
        NoAlpha                 = 0x0000000c, // Not supported

        Dither_Mask             = 0x00000030, //掩码,描述抖动 Dither模式偏好
        DiffuseDither           = 0x00000000, //(默认)-使用误差扩散的高质量抖动。
        OrderedDither           = 0x00000010, //更快、有序的抖动。
        ThresholdDither         = 0x00000020, //无抖动;使用最接近的颜色。
        // ReservedDither       = 0x00000030,

        DitherMode_Mask         = 0x000000c0, //掩码,颜色匹配与抖动偏好的对比:
          AutoDither            = 0x00000000, //(默认)-只在转换为1位或8位索引格式时进行抖动。
        PreferDither            = 0x00000040, //在转换为较小的颜色空间时,始终对图像进行抖动处理。
         AvoidDither            = 0x00000080,
        //仅在源图像使用的不同颜色数量大于目标格式的颜色表大小时,才进行抖动到索引格式。

        NoOpaqueDetection       = 0x00000100, //不要检查图像是否包含非不透明像素。
        //如果知道图像是半透明的,并且您想避免在找到非不透明像素之前检查图像中像素的开销,
        //  或者出于其他原因希望像素图保留一个alpha通道,则应使用此标志。
        //如果图像没有alpha通道,则此标志将不起作用。

        NoFormatConversion      = 0x00000200 //不要对图像进行任何格式转换。
        //这可能在将 QImage转换为 QPixmap 以进行一次性渲染操作时非常有用。
        //请注意,非首选格式的 QPixmap作为绘图设备时可能会慢得多。
    };
    Q_DECLARE_FLAGS(ImageConversionFlags, ImageConversionFlag)
    Q_DECLARE_OPERATORS_FOR_FLAGS(ImageConversionFlags)

++给出绘图函数

在这里插入图片描述

++以及

在这里插入图片描述

++举例

在这里插入图片描述

(24)接着开始绘制字体

在这里插入图片描述

++以及

在这里插入图片描述

++绘制多行文本

在这里插入图片描述

++ 以及

在这里插入图片描述

++附上对齐策略的枚举取值

在这里插入图片描述

++以及

在这里插入图片描述

++ 以及

在这里插入图片描述

++返回文本所占据的空间

在这里插入图片描述

(25)

(26)

谢谢

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhangzhangkeji

谢谢支持

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

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

打赏作者

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

抵扣说明:

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

余额充值