RosettaCodeData/Task/Bitmap-Write-a-PPM-file/Prolog/bitmap-write-a-ppm-file-1.pro

17 lines
435 B
Prolog
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
:- module(bitmapIO, [
2026-04-30 12:34:36 -04:00
write_ppm_p6/2]).
2023-07-01 11:58:00 -04:00
:- use_module(library(lists)).
%write_ppm_p6(File,Bitmap)
write_ppm_p6(Filename,[[X,Y],Pixels]):-
2026-04-30 12:34:36 -04:00
open(Filename,write,Output,[encoding(octet)]),
%write p6 header
writeln(Output, 'P6'),
atomic_list_concat([X, Y], ' ', Dimensions),
writeln(Output, Dimensions),
writeln(Output, '255'),
%write bytes
maplist(maplist(maplist(put_byte(Output))),Pixels),
close(Output).