2017-01-19 8 views
1

Кажется, я не могу найти стандартную или любую предоставленную цветовую карту в Qt (5.7 в моем случае).Есть ли цветная таблица/цветная таблица цветов, доступная в Qt?

Все я нахожу людей генерировать свои собственные таблицы цветов, таких как:

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

Так есть ли Colormap доступны в Qt (как есть в Matplotlib или MATLAB, как https://i.stack.imgur.com/dP9eY.gif)?

Edit: а Colormap идти с QImage::Format_Indexed8 формат изображения и QImage::setColorTable()

Раствор, поскольку Qt не обеспечивает цветовую палитру:

я скачал цветовую палитру из ссылки АМА 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

Qt имеет предопределенные цвета: https://doc.qt.io/qt-5/qt.html#GlobalColor-enum. Вы можете использовать его как ввод нового экземпляра QColor: https://doc.qt.io/qt-5/qcolor.html#QColor-1 – Antwane

+0

@Antwane Я ищу colormap – jmatthieu

ответ

0

Нет, к сожалению, Qt не предоставляет никакого. Вам придется строить его самостоятельно. Но есть много источников с цветовыми таблицами для всех видов потребностей.


Edit: Я успешно использовал некоторые перцептивно однородные цветовые карты из http://www.kennethmoreland.com для моих потребностей визуализации данных.

+1

спасибо за эту ссылку, я отредактировал мой вопрос, чтобы предоставить colormap, используя этот сайт. – jmatthieu