【问题标题】:Image Magick Not Converting Color SpaceImage Magick 不转换色彩空间
【发布时间】:2018-01-18 20:00:32
【问题描述】:

我正在尝试使用 ImageMagick 将 png 图像转换为 bmp 图像并将其颜色空间从 BMP 更改为 Gray。

我正在通过 OSx 命令行使用 ImageMagick。

据我所知,这个命令应该可以工作,但它只会改变文件类型而不是颜色空间。

convert fullpage.png -set colorspace Gray fullpage.bmp

有人知道我应该使用什么命令吗?

【问题讨论】:

  • 可能 BMP (BMP4) 在其标题中不支持颜色空间灰色。见en.wikipedia.org/wiki/BMP_file_format。我看不到对色彩空间灰色的支持。 Imagemagick 通过检查所有通道是否相同而知道它是灰度的,因此它分配它 type=grayscale,但保留 colorspace=sRGB。另请参阅fileformat.info/format/bmp/egff.htm
  • 好的,那么如果header不访问灰度,但是通道可以是灰度的,那么如何转换原图的通道呢?谢谢
  • 我怀疑您无法将 BMP 的单个通道作为灰度。它将是 3 个相等 (RGB) 通道。你可以试试convert rose: -colorspace gray +dither -colors 256 -depth 8 -type palette rose.bmp。但我怀疑这可能没有什么不同。
  • 也许你的问题是 BMP 类型而不是色彩空间。也许您的软件需要 BMP3 或 BMP2 而不是 BMP (BMP4)。所以试试convert rose: -colorspace gray +dither -colors 256 -depth 8 -type palette BMP3:rose.bmp 也试试-type grayscale。
  • 请参阅imagemagick.org/discourse-server/viewtopic.php?t=26268stackoverflow.com/questions/31453498/…,了解有关 BMP 到灰色的讨论。它说 BMP 不支持色彩空间灰度。但是,您可以使用灰度调色板的单通道调色板类型(相对于 3 通道 24 位总 RGB)。我上面的命令应该这样做。

标签: imagemagick imagemagick-convert


【解决方案1】:

原来 BMP 不支持 Gray colorpac,但因为我还需要一个 4 位颜色通道,所以我设法用 ppmtobmp 做到了这一点

【讨论】: