
On Sun, Aug 2, 2009 at 4:00 PM, CK Kashyap
Hi, Now that I've understood how to generate raster points of a line in Haskell - the next thing I want to do is generate a pnm file with it. I've done it in perl as of now. In perl, I can have a scalar variable $x contain a string of 256*256*3 bytes (for 24-bit 256x256 image) and set pixels using substr on LHS. I was wondering how I could do something similar in Haskell?
sub setPixel{ my($x,$y,$red,$green,$blue)=@_; my$pixel=pack "CCC",$red,$green,$blue; my$offset=$WIDTH*$y*3 + $x*3; substr($image,$offset,3) = $pixel; }
There's a library on hackage which does this http://hackage.haskell.org/package/ppm You can install this by doing
cabal install ppm
Here's an example usage (this uses the binary version of ppm, the docs for ppm has an example for the ASCII version): writePPM fname img = withBinaryFile fname WriteMode (\h -> hPutStr h (ppm_p6 img) ) If you're looking for the learning experience, you could always read the source for the library (which is pretty tiny). -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862