RosettaCodeData/Task/Bitmap-Write-a-PPM-file/Phix/bitmap-write-a-ppm-file-2.phix
2023-07-01 13:44:08 -04:00

15 lines
552 B
Text

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