!- ! This module try to write PGM complient gray level files !- module pixrgb implicit none !----------------------------------------------------------------------- !- ! definition of structures !- type t_pixrgb integer :: r, g, b integer :: alpha = 0 end type !------------------------------------------------------------------- contains !------------------------------------------------------------------- !- subroutine rgbpix_spit_as_pnm_8(pic, fname) type(t_pixrgb), intent(in) :: pic(:,:) character (len=*), intent(in) :: fname integer :: io, ix, iy open(newunit=io, file=fname) write (io, '(a2)') "P3" write (io, '("# rgbpix_spit_as_pnm_8")') write (io, '(i0," ",i0)') size(pic, 1), size(pic, 2) write (io, '(i0)') 255 do iy=1, ubound(pic, 2) do ix=1, ubound(pic, 1) write(io, "(3I4)") pic(ix, iy)%r, pic(ix, iy)%g, pic(ix, iy)%b enddo enddo close(unit=io) end subroutine !------------------------------------------------------------------- !- subroutine rgbpix_spit_as_pnm_16(pic, fname) type(t_pixrgb), intent(in) :: pic(:,:) character (len=*), intent(in) :: fname integer :: io, ix, iy open(newunit=io, file=fname) write (io, '(a2)') "P3" write (io, '("# rgbpix_spit_as_pnm_16")') write (io, '(i0," ",i0)') size(pic, 1), size(pic, 2) write (io, '(i0)') 65535 do iy=1, ubound(pic, 2) do ix=1, ubound(pic, 1) write(io, "(3I6)") pic(ix, iy)%r, pic(ix, iy)%g, pic(ix, iy)%b enddo enddo close(unit=io) end subroutine !------------------------------------------------------------------- end module