gpt4 book ai didi

qt - QPainter画线-配置线条柔和度(水平不透明度渐变)

转载 作者:行者123 更新时间:2023-12-05 04:06:03 34 4
gpt4 key购买 nike

我正在寻找一种在使用 QPainter 绘制 QLine 元素时应用水平不透明度渐变的方法。简而言之,我希望能够使线条的不透明度随着远离正在绘制的线条中心而降低。我想要达到的效果对应于许多图像编辑工具通常描述为画笔的硬度。

这是一个示例图像,比较了使用硬笔刷和软笔刷的线条:

soft and hard line brush

这是绘制常规 QLine 的最小示例:

QPainter p;
p.setPen(QPen(Qt::black, 12, Qt::SolidLine, Qt::RoundCap));
p.drawLine(QPointF(0,0), QPointF(1024,1024));

我将如何以及在何处配置我所描述的线条硬度?绘制QLine元素时是否有类似衰减属性的东西?

在文档中,我只能找到有关如何在设置点之间应用线性渐变的示例,这不是我想要的。

最佳答案

那不是 QPen 绘画,而是画笔绘画,就像在 Photoshop 中一样,Qt 并不真正支持开箱即用的这种功能。

但它很容易实现,您需要一个画笔模板像素图,然后您只需按给定步骤在目标绘图设备上沿着一条线绘制该像素图即可。

线插值部分已经回答here .

建议画笔模板为 8 位灰度 QImage,然后您可以通过使用灰度值作为所选纯色的 alpha 值轻松获得其彩色版本。 QImage 更可取,因为它提供单独的像素访问。这允许使用除硬质和软质之外的任何类型的画笔,包括某些艺术画笔。

当然,如果您只需要一个软刷,您可以利用 Qt 的现有渐变直接生成所需颜色的软刷,并跳过模板着色部分。您可以使用 QPainter 以程序方式绘制可着色或全彩色模板以用作画笔。

关于qt - QPainter画线-配置线条柔和度(水平不透明度渐变),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411452/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com