Bitmap/Write a PPM file: Difference between revisions

m
No edit summary
m (→‎{{header|Phix}}: minor tidy)
Line 1,443:
close(fn)
</lang>
The following more general purpose routine is used in several other examples (via include ppm.e):
<lang Phix>global procedure write_ppm(sequencestring filename, sequence image)
integer fn = open(filename,dimx"wb"),dimy
dimx = length(image),
sequence colour_triple
fn dimy = openlength(filename,"wb"image[1])
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
colour_tripleinteger pixel = sq_div(sq_and_bits(image[x][y], {#FF0000,#FF00 -- red,#FF})green,blue
sequence r_g_b = sq_and_bits(pixel,{#010000FF0000,#0100FF00,#01FF})
puts r_g_b = sq_floor_div(fnr_g_b, colour_triple{#010000,#0100,#01})
puts(fn,r_g_b)
end for
end for
7,824

edits