【发布时间】:2012-04-13 17:28:35
【问题描述】:
我想这一般来说更像是一个图形处理问题,但我想在 Qt (c++) 中完成这个。如果我有一个浅灰色的图像 - 比如说透明背景上的一个圆圈 - Qt 中是否有任何内置功能可以改变色调/饱和度以对其进行着色?
我想我可以逐个像素地修改 rgb,并在数学上修改 r、g 和 b 中的 x,以获得所需的颜色,但必须有比修改每个像素更好的方法。
Qt Docs 中没有任何内容涉及图像处理,只是更改 alpha 和颜色。我是否应该研究一个开源库(最终结果可能是一个独立销售的软件)?如果有,有什么建议吗?或者是否有隐藏在 Qt 文档中的秘密功能可以在不需要外部库/疯狂算法的情况下完成?
【问题讨论】:
-
最终,任何库中的任何函数都必须遍历每个像素并对其进行修改。除非您需要各种不同的图像处理功能,否则自己编写会更容易。使用色相/饱和度比添加 RGB 值要复杂一些;如果你自己写一些东西,我建议你看看 HSV 到 RGB 的转换:en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB
-
这就是我害怕的。我现在正在考虑创建一个带有黑色阴影/次要细节的透明图像,然后将其叠加在所需的颜色上,因为我最多只需要约 5 种颜色。
标签: qt graphics qimage qpixmap