我有一个heightmap,它只是一个16位宽的大端数组。我还没有研究过从原始数据中编码jpg或png,但在此之前,我想知道是否有任何程序可以下载以将其作为图像查看,因为我想知道它是什么样子的。
当我搜索查看原始图像数据时,所有结果都会返回有关相机图像格式所用的raw图像格式的信息,这些格式在制造商之间也有所不同,我不认为这是我想要的。它是原始数组中的原始数据,而不是raw图像格式。
谢谢。
是的,带有ImageMagick,它安装在大多数Linux发行版上,可用于macOS和Windows。
因此,如果您的图像是600x400,并且在一个名为image.dat
的文件中只有16位灰度值,您可以在终端上执行此操作,并获得一个称为output.jpg
的文件,您可以查看该文件:
convert -size 600x400 -depth 16 -endian MSB GRAY:image.dat -auto-level output.jpg
如果有512字节的标头,您可以使用:
convert -size 600x400+512 ...
如果数据是彩色而非灰度,请使用:
convert -size 600x400 -depth 16 -endian MSB RGB:image.dat ...
如果您想要PNG而不是JPG,请使用:
convert ... result.png
作为替代方案,您可以考虑编写PGM(便携式灰图)或程序中的PPM(Portable Pix Map)格式文件非常简单,请参阅NetPBM Wiki描述,其中会包含您的图像大小,因此它将是独立的。通常使用P5
(用于灰度)或P6
(用于颜色)作为二进制数据,而不是ASCII数据。然后,您可以使用ImageMagick将其简单地转换为JPEG(或PNG),而不必担心编写JPEG或PNG或与库链接:
convert result.pgm result.png # convert greyscale results to PNG
convert result.ppm result.jpg # convert colour results to JPG, or PNG, or TIFF, or GIF...