有谁知道如何从 ImageMagic 转换为小端 .pfm 文件?

jam*_*mji 1 imagemagick

我正在寻找从 imageMagick 转换 little endian.pfm 文件的方法。

据我所知,我们可以得到这样的 pfm 文件。

convert input.bmp output.pfm
Run Code Online (Sandbox Code Playgroud)

此输出文件由 Big endian 生成。但我想转换为小端。

那么有没有什么方法可以在 ImageMagick 上从 Big endian 转换为 Little endian?

谢谢

emc*_*lle 5

Endian 可以用-endian选项控制。

例子。创建一个带有小端的 2x2 红色 PFM 图像,并写入hexdump.

$ convert -size 2x2 xc:red -endian LSB PFM:- | hexdump

0000000 50 46 0a 32 20 32 0a 2d 31 2e 30 0a 00 00 80 3f
0000010 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00
0000020 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00
0000030 00 00 80 3f 00 00 00 00 00 00 00 00            
000003c
Run Code Online (Sandbox Code Playgroud)

您可以通过翻译标题来确认小端。

50 46 0a 32 20 32 0a 2d 31 2e 30 0a 00 00 80 3f
                     |         |    |         |
little endian -------| "-1.0"  |    | LSM data|
Run Code Online (Sandbox Code Playgroud)

用大端重复上面。

$ convert -size 2x2 xc:red -endian MSB PFM:- | hexdump

0000000 50 46 0a 32 20 32 0a 31 2e 30 0a 3f 80 00 00 00
0000010 00 00 00 00 00 00 00 3f 80 00 00 00 00 00 00 00
0000020 00 00 00 3f 80 00 00 00 00 00 00 00 00 00 00 3f
0000030 80 00 00 00 00 00 00 00 00 00 00               
000003b
Run Code Online (Sandbox Code Playgroud)

并观察...

50 46 0a 32 20 32 0a 31 2e 30 0a 3f 80 00 00 00
                     |      |    |         |
big endian ----------| "1.0"|    | MSB data|
Run Code Online (Sandbox Code Playgroud)