什么软件可以在 Linux 上显示原始位图?

Ali*_*ton 11 binary image-processing

我有一个原始文件,但我不知道图像的像素格式或宽度。我需要一个可以快速显示数据并允许我轻松尝试不同格式的工具。用于 Windows 的此类工具的一个示例是7yuv。在 Linux 上有什么软件可以完成这个任务?

注意:这与数码相机原始数据无关,这让我尝试使用 Google 来回答这个问题令人沮丧。

7yuv

Ali*_*ton 9

事实证明 Gimp 可以做到这一点。只需将文件作为原始文件打开,您就会看到这个有用的对话框,可让您预览图像:

在此处输入图片说明

  • 它仅适用于 RGB。你如何打开灰度(8位)原始格式? (2认同)

Cir*_*郝海东 6

convert 来自 ImageMagick

例如,8 位 2x3 灰度:

printf '\x00\xFF\x88\xFF\x00\xFF' > in.bin
Run Code Online (Sandbox Code Playgroud)

然后:

convert -depth 8 -size 3x2+0 gray:in.bin out.png
Run Code Online (Sandbox Code Playgroud)

命令解释:

  • -depth 8: 每种颜色有 8 位
  • -size 2x3+0:2x3图片。+0表示从文件中的偏移量 0 开始。如果有元数据头,你可以用偏移量跳过它们。
  • gray:in.bin:输入文件是in.bin,格式是gray,定义在http://www.imagemagick.org/script/formats.php这个奇怪的符号被使用,因为 ImageMagick 通常从扩展名确定格式,但这里没有扩展名.

如何像这个例子一样查看如此微小的输出

现在的问题是如何准确地查看如此微小的 3x2 输出。直接eog

eog out.png
Run Code Online (Sandbox Code Playgroud)

效果不是很好,因为图像太小,如果放大很多eog使用连续混合像素的显示算法,这对大多数图片更好,但对于这么小的图像则不然。

一种很好的可能性是运行:

convert out.png -scale 300x out2.png
Run Code Online (Sandbox Code Playgroud)

或直接与:

convert -depth 8 -size 3x2+0 gray:in.bin -scale 300x out.png
Run Code Online (Sandbox Code Playgroud)

-scale需要而不是-resize,因为-resizeeog默认情况下一样连续混合像素颜色。

输出:

在此处输入图片说明

另一个选项是在 Gimp 中查看它:

gimp out.png
Run Code Online (Sandbox Code Playgroud)

如果放大得足够多,像 Gimp 这样的图像编辑器必须单独显示每个像素。

RGB 示例

printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > in.bin
convert -depth 8 -size 3x1+0 rgb:in.bin out.png
Run Code Online (Sandbox Code Playgroud)

或使用-scale使其更易于查看:

convert -depth 8 -size 3x1+0 rgb:in.bin -scale 300x out.png
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

有关的:

在 Ubuntu 16.04、ImageMagick 6.8.9 上测试。