-- demo\rosetta\Bitmap_Histogram.exw (runnable version) include ppm.e -- black, white, read_ppm(), write_ppm() (covers above requirements) function to_bw(sequence image) sequence hist = repeat(0,256) for x=1 to length(image) do for y=1 to length(image[x]) do integer pixel = image[x][y] -- red,green,blue sequence r_g_b = sq_and_bits(pixel,{#FF0000,#FF00,#FF}) integer {r,g,b} = sq_floor_div(r_g_b,{#010000,#0100,#01}), lum = floor(0.2126*r + 0.7152*g + 0.0722*b) image[x][y] = lum hist[lum+1] += 1 end for end for integer lo = 1, hi = 256, ltot = hist[lo], rtot = hist[hi] while lo!=hi do if ltot