Siu*_*Siu 2 posix image file fortran77
我正在尝试从fortran编写二进制数据文件,但我发现常规文件接口非常有限,我想知道Fortran是否具有POSIX编译功能.
我找到了这个标准:IEEE 1003.9-1992,但我不知道它是否得到大多数常见编译器的完全支持(或者如果我必须激活任何标志).我找不到任何实用信息,你能给我任何建议吗?
顺便说一下,我正在尝试编写图像文件,首先我要尝试使用tga/pgm.另外,我不想向外部库添加任何依赖,谢谢!
解:
最后我能够写出ppm文件,我不得不避免在内部循环结束时打印换行符,最终的代码是这样的:
subroutine imgwrite()
implicit none
* ******************************************************************
include 'image.f'
* ******************************************************************
integer x, y, i
write(imgunit, '(A)') 'P3'
write(imgunit, '(I4)') imgwidth
write(imgunit, '(I4)') imgheight
write(imgunit, *) 255
do 10 y=1, imgheight
do 20 x=1,imgwidth
write(imgunit,100) (int(imgpixels(x,y,i)*255D0), i=1,3)
20 continue
write(imgunit,110)
10 continue
100 FORMAT(3(I4),$)
110 FORMAT((/))
return
end
Run Code Online (Sandbox Code Playgroud)
没有人在FORTRAN中提供有关POSIX的任何信息.
谢谢.
TGA是一种非常简单的格式,即使它是二进制格式,因此应该可以从FORTRAN编写它.但是,如果没有外部库的帮助,我不想在FORTRAN中尝试TIFF,PNG,GIF或JPG.
您可能会发现netpbm格式系列之一更易于编写,并且可以轻松地将它们转换为TGA或您可能需要用于显示或使用简单命令进一步处理的任何其他格式.PBM格式包括纯ASCII和二进制风格,因此即使二进制文件访问存在问题,也可以编写它们(尽管效率非常低).该工具套件包括与大约100种其他图像文件格式的转换.
编辑:对不起,我对如何实际编写来自FORTRAN的文件更有帮助,但是当我上次使用该语言时,穿孔卡很常见.;-)