gpt4 book ai didi

qt - 你如何将 rgb 转换为 uint index_or_rgb

转载 作者:行者123 更新时间:2023-12-02 04:59:05 25 4
gpt4 key购买 nike

我正在使用

QImage::setPixel(x, y, uint index_or_rgb); // http://qt-project.org/doc/qt-4.8/qimage.html#setPixel-2

但我不知道如何将 rgb 值转换为 uint。如何将 rgb 值转换为 uint?

QColor *c = new QColor(185, 20, 120);
image.setPixel(i, i2, c->value()); // this doesnt work

最佳答案

1. 参见QImage::setPixel的文档:

If the image's format is either monochrome or 8-bit, the given index_or_rgb value must be an index in the image's color table, otherwise the parameter must be a QRgb value.

我假设您的图像既不是单色也不是 8 位,因此您需要获取 QRgb 值(它是 unsigned int 的类型定义)。

2. 接下来,如果您查看 QColor 文档,您会注意到 QRgb 值来自 QColor 应使用 rgb()(如果您在图像中使用 alpha channel ,则使用 rgba())获取。

3. 请注意,不应使用 new 创建 QColor。它通常在堆栈上创建并按值传递。所以你的代码应该更正如下:

QColor c(185, 20, 120);
image.setPixel(i, i2, c.rgba());

另请注意,value() 不会返回整个 QColor 的表示形式。它仅返回 QColor 的 HSV 表示的 3 个组件之一。 value() 似乎与您的用例完全无关。

关于qt - 你如何将 rgb 转换为 uint index_or_rgb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17431837/

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