将文件转换为 24 位位图

将文件转换为 24 位位图

我正在使用 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 标头中的biXPelsPerMeterbiYPelsPerMeter字段中得到 0(但它似乎没有导致问题)。顺便说一句,我还没有找到对这两个字段的很好的解释。

-compress None是必需的,因为有时转换会生成压缩的 BMP - 但未发现这样做的逻辑理由。

希望这会有所帮助,但我不是这个主题的专家 - 我只是尝试了一些方法并使用谷歌查看并得出了上述开关设置。

相关内容