您的位置:首页 > 编程语言 > Qt开发

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

2014-09-01 08:49 190 查看
QImage *qi = new QImage(data_ptr, width, height, QImage::Format_Indexed8);
QVector<QRgb> 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 qimage 灰度图 index