【问题标题】:Changing the bit-depth of figures produced using Matplotlib更改使用 Matplotlib 生成的图形的位深度
【发布时间】:2014-09-12 14:12:53
【问题描述】:

我正在使用 matplotlib 通过savefig 生成一些数字。这些数字是黑白的,需要以非常高分辨率 (1000 dpi) 的 TIFF 格式保存。因此,以减少的位深度来保存它们以使用更少的内存将是有益的。

为此,我的问题是:使用 matplotlib 保存图形时如何指定位深度?

谢谢!

【问题讨论】:

  • 你的意思是保存到PNG?
  • 我实际上是以 TIFF 格式保存的,尽管我对与任何光栅格式(包括 PNG)相关的答案感兴趣。
  • 如果 matplotlib 直接支持这样的选项,我会感到惊讶,但你当然可以在之后转换图像。或者,您可以使用您最喜欢的 python 图像库来保存从 matplotlib 内容生成的 numpy 数组图像表示。
  • 谢谢大卫!我按照你的建议做了。由于我的回答中给出的原因,我放弃了在 matplotlib 中尝试这样做。干杯!

标签: python matplotlib bit-depth


【解决方案1】:

到目前为止,我的印象是 matplotlib 不支持位深度选项。因此,我使用 imagemagick 来转换图像 posthoc:

convert -monochrome +dither A.tiff B.tiff

我会提到几件事,以防其他人尝试做类似的事情:

当我第一次通过运行convert -monochrome A.tiff B.tiff 更改位深度时,字体看起来很难接受(即使是 1000 DPI!)。这是因为抗锯齿,matplotlib 默认执行。我找不到任何关闭它的选项,但它的负面影响(当对 DPI 进行下采样时)可以通过启用抖动在很大程度上规避。因此,即使 有一个选项可以更改 matplotlib 中输出图像的 DPI,除非它执行抖动或除非还有一个禁用抗锯齿的选项,否则它也没有用。

简短的回答,我会建议与我有类似情况的任何人像我一样进行单色转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多