gpt4 book ai didi

qt - 如何将 rgb 转换为 uint index_or_rgb

转载 作者:行者123 更新时间:2023-12-02 21:57:58 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的typedef)。

2. 接下来,如果您查看 QColor 文档,您会注意到 QColor 中的 QRgb 值> 应使用 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