我正在使用 imagemagick convert 来转换此图像https://i.stack.imgur.com/u4z85.jpg转换为 bmp。但是出于某种原因,我使用的工具不喜欢位图。如果我将图像保存为 png 并将其转换为 24 位 bmp,则没问题。我尝试使用以下命令,但它不喜欢它。
convert -verbose -depth 8 -type truecolor infile outfile.bmp
查看文件,我发现“坏”的 bmp 有
BMÊp1 (0's) Š
好的
BMvp1 (0's) 6
答案1
我在 BMP 转换方面也遇到了一些麻烦。我通常指定BMP3:outfile.bmp
并通常获得 24 位 BMP 文件。有时我在转换 JPEG 文件时会得到 8 位 BMP。我刚刚尝试过-type truecolor
(在这里看到过),现在看起来我得到了 24 位 BMP,而以前我只能得到 8 位。
我也使用这些开关:
-units PixelsPerInch -density 72 -compress None -depth 24
应该-depth 24
做一个 24 位 BMP(您的情况下深度 -8 也可能会导致问题)但正如我所说,即使指定了 24 位,有时也会得到 8 位。
-units
和案例-density
纠正了一个问题,有时我会在 BMP 标头中的biXPelsPerMeter
和biYPelsPerMeter
字段中得到 0(但它似乎没有导致问题)。顺便说一句,我还没有找到对这两个字段的很好的解释。
这-compress None
是必需的,因为有时转换会生成压缩的 BMP - 但未发现这样做的逻辑理由。
希望这会有所帮助,但我不是这个主题的专家 - 我只是尝试了一些方法并使用谷歌查看并得出了上述开关设置。