在我的项目中,我需要将具有多种颜色的图像转换为只使用我在自定义colorTable中设置的144个预定颜色中的任何一个的图像。
这是我的代码:
代码语言:javascript运行复制 QImage convImage(128, 128, QImage::Format_Indexed8);
convImage.setColorCount(144);
convImage.setColorTable(colorTable); //colorTable is a const QVector with 144 qRgb values.
//scaledImage is the source image
convImage = scaledImage.convertToFormat(QImage::Format_Indexed8,Qt::ThresholdDither|Qt::AutoColor);
ui->mapView->setPixmap(QPixmap::fromImage(convImage));我希望convImage只包含我创建的colorTable中存在的颜色,但是它似乎完全忽略了我设置的表,而是用256个最大颜色创建了它自己的唯一表。
我可以通过循环遍历每一个像素来自己索引所有的东西,并找到一种从colorTable中准确选择颜色的方法,但是我想知道我是否使用了错误的colorTable。我在文档中找不到任何东西来解释为什么要创建一个新的表。
耽误您时间,实在对不起。