Bitmap/Write a PPM file

Revision as of 02:24, 6 December 2008 by rosettacode>Blue Prawn (New page: {{task|Raster graphics operations}} Using the data storage type defined on this page for raster images, write the image to a PPM file (binary P6 prefered). <BR> (...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Using the data storage type defined on this page for raster images, write the image to a PPM file (binary P6 prefered).
(Read the definition of PPM file on Wikipedia.)

Task
Bitmap/Write a PPM file
You are encouraged to solve this task according to the task description, using any language you may know.

OCaml

<ocaml>let output_ppm ~oc ~img:(_, r_channel, g_channel, b_channel) =

 let width = Bigarray.Array2.dim1 r_channel
 and height = Bigarray.Array2.dim2 r_channel in
 Printf.fprintf oc "P6\n%d %d\n255\n" width height;
 for y = 0 to pred height do
   for x = 0 to pred width do
     output_char oc (char_of_int r_channel.{x,y});
     output_char oc (char_of_int g_channel.{x,y});
     output_char oc (char_of_int b_channel.{x,y});
   done;
 done;
 output_char oc '\n';
 flush oc;
</ocaml>