我似乎无法在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);
答案 0 :(得分:1)
不,不幸的是Qt没有提供任何。你必须自己建造它。 但是有很多来源可以满足各种需求的颜色表值。
编辑:我成功地使用了来自http://www.kennethmoreland.com的感知统一色图来满足我的数据可视化需求。