Qt中如何用QImage::Format_Indexed8表示灰度图

QImage *qi = new QImage(data_ptr, width, height, QImage::Format_Indexed8);
QVector grayTable;
for(int i = 0; i < 256; i++) 
graytable.push_back(qRgb(i,i,i));
qi->setColorTable(grayTable);
 
  

qt中仅有按照索引的8位位图,需要添加ColorTable,QImage中定义ColorTable的原型如下:

void QImage::setColorTable(constQVector<QRgb> colors)

Sets the color table used to translate color indexes to QRgb values, to the specified colors.

When the image is used, the color table must be large enough to have entries for all the pixel/index values present in the image, otherwise the results are undefined.


因为灰度值分别对应rgb相同的分布,因此取vector0-255对应为qRGB(i,i,i) i在0-255之间。

你可能感兴趣的:(QT)