我认为这更多的是一个图形操作问题,但我想在 Qt (c++) 中完成这个问题。如果我有一个浅灰色的图像 - 比如说透明背景上的一个圆圈 - Qt 中是否有任何内置功能可以改变色调/饱和度来为其着色?
我想我可以逐个像素,并以数学方式修改 rgb - 将 x 添加到 r、g 和 b,以获得所需的颜色,但一定有比修改每个像素更好的方法。
Qt 文档中没有任何内容涉及图像处理,只是改变 Alpha 和颜色。我应该研究一个开源库(最终结果可能是一个独立销售的软件)?如果是的话,有什么建议吗?或者 Qt 文档中是否隐藏着一个 secret 函数,可以在不需要外部库/疯狂算法的情况下完成?
最佳答案
可能的行动方案:
- 将图像加载为 QImage
- 做一个
QImage QImage::convertToFormat(QImage::Format_Indexed8)
获取索引 带有颜色表的图像 - 使用
QRgb获取颜色表值 QImage::color (int i) const
- 使用
QColor 操作颜色 ( QRgb color )
和其他 QColor 方法 - 改变颜色
带有
void QImage::setColor ( int index, QRgb colorValue )
的表
关于qt - 改变 QImage/QPixmap 的色调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936021/