在Fortran中创建原始图像是否可能?我在考虑BMP格式,但不确定哪个扩展名最好。
基本上,我想能够拥有一个包含每个像素的颜色值的数组或文本文件,因此一个3像素宽的红色图像只需是FF0000FF0000FF0000或类似的内容。
方面1:你必须了解图像文件的格式,然后编写该格式。通常任何标准图像文件(PPM、BPM、TIFF等)都将包含某种头文件。这是编写标准图像文件时固有的特征,与语言无关。
方面2:Fortran 2曾经非常依赖记录格式,即使对于未格式化(二进制)文件,这也会使其与其他语言编写的文件不兼容,如C,或者文件格式指定不符合Fortran所期望的记录分隔符。但是新的流I/O方法生成非记录文件。 图像文件将是未格式化(二进制),因此在打开语句中包括:
access='stream', form='unformatted', ....
是的,您可以使用我们的gtk-fortran绑定(GNU GPL v3)创建PNG,其中包括与GdkPixbuf库的接口。 Pixbuf是一个包含图像每个像素的RGB强度的1D数组。
请注意,可以仅使用GdkPixbuf库(〜20行代码),而无需构建GTK GUI:
你只需要一个Fortran编译器(Fortran >=2003)。
convert
(http://www.imagemagick.org/)这样的程序将其转换为其他格式,如 PNG 等,这些格式占用更少的空间。 - KirarinSnow