我有一个索引颜色(最多6种颜色)8位位图文件。
我需要在其上写一些文字并保存而不更改格式和颜色表。
不幸的是通过docs: http://doc.qt.io/qt-5/qimage.html
注意:不支持使用QImage :: Format_Indexed8绘制到QImage。
我的尝试是将文件打开为QImage,转换为我可以使用QPainter写入的格式(仅使用颜色表中已有的颜色),然后将其转换回8位位图。
这样的事情:
image = image.convertToFormat(QImage.Format_RGB16)
painter = QPainter()
painter.begin(image)
[....]
painter.end()
image = image.convertToFormat(QImage.Format_Indexed8, Qt.ThresholdDither)
但无论我做什么,我总是会以某种方式损坏图像(它有4位色深,它有一种噪音损坏,或者它的颜色有变化)。
我尝试在转换过程中使用不同的标志(通常会混淆颜色深度)。
我还尝试从原始图像复制colorTable并在转换后设置它(保存前)但这会产生负片/黑白图像。
如果对此问题有任何帮助,我将非常感激。