【问题标题】:How to create/save 2bit images more efficiently?如何更有效地创建/保存 2bit 图像?
【发布时间】:2020-09-10 18:45:38
【问题描述】:

我想为 E-Ink 显示器供电,为此,我需要 2 位图像。我目前正在使用 Pillow 创建图像并保存它,但黑白/灰度图像的选项只有 1 位和 8 位:

from PIL import Image

im1 = Image.new('1', (600, 800), color=1)
# creates 1-bit image, background color options range from 0 to 1, black and white

im2 = Image.new('1', (600, 800), color=123)
# creates 8-bit image, background color options range from 0 to 255, grayscale

我可以创建/保存 2 位图像吗?或者,以后有什么方法可以转换它们吗?

我知道这个帖子:converting images to indexed 2-bit grayscale BMP。 我想知道是否有更有效的方法。

【问题讨论】:

标签: python image-processing python-imaging-library


【解决方案1】:

您有多种选择:

  • 存储两个 1bpp 图像而不是一个,并在必要时合并/拆分;

  • 在一个 8b 像素中打包/解包四个 2b 像素;

  • 使用支持原生 2bpp 的图像格式(我猜 TIFF 和 GIF 可以,但不确定它们是否正确打包);您可能需要集成原始库;

  • 如果您愿意自己编程,一个更紧凑的解决方案可能是对 4bpp 数据进行游程编码(除非图像有噪声或抖动,否则会有很长的恒定值运行),以及一个 ad- hoc 文件格式。

第一个选项的优点是您可以使用标准工具可视化图像(但想象一下组合)。

【讨论】:

  • 非常感谢!我会尝试这些选项,我认为第一个对我的应用程序有好处。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 2020-03-29
  • 2013-02-21
  • 2015-01-26
  • 1970-01-01
  • 2020-10-24
相关资源
最近更新 更多