Bitmap/Write a PPM file: Difference between revisions

No edit summary
Line 1,514:
end put_integer;
end test;</lang>
 
=={{header|Prolog}}==
This is an extremely straight forward way to write in Prolog, more complicated methods might use DCGs:
<lang prolog>
:- module(bitmapIO, [
write_ppm_p6/2]).
 
:- use_module(library(lists)).
 
%write_ppm_p6(File,Bitmap)
write_ppm_p6(Filename,[[X,Y],Pixels]):-
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).
</lang>
 
usage:
 
<lang prolog>
:- use_module(bitmap).
:- use_module(bitmapIO).
 
write :-
new_bitmap(AllBlack,[50,50],[0,0,0]),
set_pixel0(AlmostAllBlack,AllBlack,[25,25],[255,255,255]),
write_ppm_p6('AlmostAllBlack.ppm',AlmostAllBlack).
 
</lang>
 
=={{header|PureBasic}}==
Anonymous user