Bitmap/Write a PPM file: Difference between revisions

Content added Content deleted
No edit summary
m (→‎{{header|Phix}}: minor tidy)
Line 1,443: Line 1,443:
close(fn)
close(fn)
</lang>
</lang>
The following more general purpose routine is used in several other examples:
The following more general purpose routine is used in several other examples (via include ppm.e):
<lang Phix>procedure write_ppm(sequence filename, sequence image)
<lang Phix>global procedure write_ppm(string filename, sequence image)
integer fn,dimx,dimy
integer fn = open(filename,"wb"),
dimx = length(image),
sequence colour_triple
fn = open(filename,"wb")
dimy = length(image[1])
dimx = length(image)
dimy = length(image[1])
printf(fn, "P6\n%d %d\n255\n", {dimx,dimy})
printf(fn, "P6\n%d %d\n255\n", {dimx,dimy})
for y = 1 to dimy do
for y=1 to dimy do
for x = 1 to dimx do
for x=1 to dimx do
colour_triple = sq_div(sq_and_bits(image[x][y], {#FF0000,#FF00,#FF}),
integer pixel = image[x][y] -- red,green,blue
{#010000,#0100,#01})
sequence r_g_b = sq_and_bits(pixel,{#FF0000,#FF00,#FF})
puts(fn, colour_triple)
r_g_b = sq_floor_div(r_g_b,{#010000,#0100,#01})
puts(fn,r_g_b)
end for
end for
end for
end for