使用PyQt

时间:2015-10-05 23:05:43

标签: python qt image-processing bitmap pyqt

我有一个索引颜色(最多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并在转换后设置它(保存前)但这会产生负片/黑白图像。

如果对此问题有任何帮助,我将非常感激。

0 个答案:

没有答案