Qt中是否有默认的颜色表/颜色表?

时间:2017-01-19 14:45:33

标签: qt qt5

我似乎无法在Qt中找到默认或任何提供的色彩映射(在我的情况下为5.7)。

我发现所有人都会生成自己的颜色表,例如:

QVector<QRgb> ctable;
for(int i = 0; i < 256; ++i)
{
    ctable.append(qRgb(i,i,i));
}

那么Qt中是否有可用的颜色图(就像在matplotlib或matlab中那样https://i.stack.imgur.com/dP9eY.gif)?

修改:使用QImage::Format_Indexed8图片格式和QImage::setColorTable()

的色彩映射表

解决方案,因为Qt不提供任何色彩映射:

我从AMA的链接http://www.kennethmoreland.com/color-advice/black-body/black-body-table-byte-0256.csv

下载了一个色彩映射表

然后我读取文件以生成我自己的色彩映射:

QVector<QRgb> ctable;

QFile file("black-body-table-byte-0128.csv");
if(!file.open(QIODevice::ReadOnly))
{
    QMessageBox::information(0, "error", file.errorString());
}

QTextStream in(&file);

while(!in.atEnd())
{
    QString line = in.readLine();    
    QStringList values = line.split(",");
    ctable.append(qRgb(values[1].toInt(), values[2].toInt(), values[3].toInt()));
}

file.close();

现在ctable可以使用:

作为色彩映射
QImage myImage;
myImage.setColorTable(ctable);

1 个答案:

答案 0 :(得分:1)

不,不幸的是Qt没有提供任何。你必须自己建造它。 但是有很多来源可以满足各种需求的颜色表值。

编辑:我成功地使用了来自http://www.kennethmoreland.com的感知统一色图来满足我的数据可视化需求。