更改使用Matplotlib生成的图像位深度

7 投票
1 回答
1392 浏览
提问于 2025-04-21 07:50

我正在使用matplotlib这个工具来生成一些图形,通过savefig这个功能。这些图形是黑白的,需要以非常高的分辨率(1000 dpi)保存为TIFF格式。因此,减少位深度可以帮助我节省内存。

所以,我想问的是:在用matplotlib保存图形时,怎么指定位深度呢?

谢谢!

1 个回答

1

到目前为止,我觉得matplotlib并不支持位深度选项。所以我在生成图像后,使用imagemagick来转换图像:

convert -monochrome +dither A.tiff B.tiff

我想提几点,以防有人也想做类似的事情:

当我第一次通过运行 convert -monochrome A.tiff B.tiff 来改变位深度时,字体看起来非常难看(即使在1000 DPI下也是如此!)。这是因为matplotlib默认会进行抗锯齿处理。我找不到关闭这个功能的选项,但通过启用抖动,可以在很大程度上避免其负面影响(尤其是在降低DPI时)。因此,即使matplotlib有选项可以改变输出图像的DPI,但如果没有抖动功能或者没有关闭抗锯齿的选项,这个功能也没什么用。

简单来说,我建议和我处于类似情况的人,像我一样在生成后进行单色转换。

撰写回答