美文网首页
QBrush纹理绘制偏移问题

QBrush纹理绘制偏移问题

作者: 田陌允 | 来源:发表于2021-04-23 16:44 被阅读0次
q

遇到的问题:
图B是直接drawPixmap原图
图A是qbrush调用setTextturre(原图)
然后painter.setbrush(该brush)
painter.drawRect(同样大小的矩形)
=======================================
为什么图A就不能从原图的左上角开始画?

解决方法:

        QBrush brush;
        brush.setTexture(drawQRPix(color, qrSize));
        painter->setBrush(brush);
        painter->setBrushOrigin(-qrSize.width()/2.0, -qrSize.height()/2.0);//关键是这句

另附QPixmap逐像素颜色变更为Size大小图像函数(我这边是对一张底色为白色的QRCode做颜色变更):

QPixmap CNode::drawQRPix(QColor color, QSize size)
{
    QPixmap sourcePixmap(":/Icons/QR");
    QImage image = sourcePixmap.scaled(size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation).toImage();
    for(int w = 0; w < image.width(); ++w)
    {
        for(int h = 0; h < image.height(); ++h)
        {
            QRgb rgb = image.pixel(w, h);
            if(rgb != QColor(Qt::white).rgb())//白色底色不改变
            {
                image.setPixel(w, h, color.rgba());
            }
        }
    }
    return QPixmap::fromImage(image);
}

相关文章

  • QBrush纹理绘制偏移问题

    遇到的问题:图B是直接drawPixmap原图图A是qbrush调用setTextturre(原图)然后paint...

  • (3)绘制纹理

    绘制纹理,

  • 134 纸箱动画-练习02

    四、打光与材质 3、关于实体化修改器的材质偏移 问题:内部也有贴图纹理 解决方法: 1、复制一个纹理,删除贴图部分...

  • OpenGL ES 分屏滤镜

    想要绘制滤镜首先我们需要清楚如何绘制纹理,如果不了解的可以参考 OpenGL ES 纹理绘制。这篇文章中绘制的图片...

  • android-opengles3.0开发【5】绘制纹理

    简介 本文在上一篇文章的基础上完成纹理的绘制。 绘制纹理流程也不复杂: 一张作为纹理的图片 编写相应的着色器 准备...

  • 2020-04-21

    今日目标 flex 中的纹理绘制 flex 中的体纹理绘制(无数据,暂时搁置) 运动 2 组(未完成,忘了晚上加班...

  • Android OpenGL ES教程目录

    基础知识 专题练习 GPUImage 待处理问题 纹理切换 多个program同时绘制 参考 见Android O...

  • Metal 创建和采样纹理

    您可以使用纹理在Metal中绘制和处理图像。纹理是纹理元素的结构化集合,通常称为纹理元素或像素。这些纹理元素的确切...

  • 三、效果实现:10、卡通火焰01

    火焰基本算法原理 : 溶解+纹理偏移 利用Opacity Mask值可以遮罩一部分不想显示的纹理,加上噪声后,就会...

  • 2022-11-02 webgl绘制圆形点

    一、原理 1.绘制圆形点,计算到圆心的距离 2.绘制球背面剔除 3.开启多边形偏移解决球遮挡点问题 二、效果 三、代码

网友评论

      本文标题:QBrush纹理绘制偏移问题

      本文链接:https://www.haomeiwen.com/subject/eyncrltx.html