global procedure write_ppm(string filename, sequence image) integer fn = open(filename,"wb"), dimx = length(image), dimy = length(image[1]) printf(fn, "P6\n%d %d\n255\n", {dimx,dimy}) for y=1 to dimy do for x=1 to dimx do integer pixel = image[x][y] -- red,green,blue sequence r_g_b = sq_and_bits(pixel,{#FF0000,#FF00,#FF}) r_g_b = sq_floor_div(r_g_b,{#010000,#0100,#01}) puts(fn,r_g_b) end for end for close(fn) end procedure