- 37 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 15:28:29 ]
- >>36
% Prolog pgmファイルヘッダ(_pgmファイル,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :- open(_pgmファイル,read,Input,[type(binary)]), pgmヘッダの読み取り(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル), close(Input),!. pgmファイルヘッダの読み取り(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :- マジックナンバー(Input,_マジックナンバー), 画像の幅方向サイズ(Input,_画像の幅方向サイズ), 画像の幅方向サイズ(Input,_画像の幅方向サイズ), 画像の高さサイズ(Input,_画像の高さサイズ),!. マジックナンバー(Input,_マジックナンバー) :- findall(Y,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;char_code(Y,X))),L), concat_atom(L,_マジックナンバー),!. 画像の幅方向サイズ(Input,_画像の幅方向サイズ) :- findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L), number_codes(_画像の幅方向サイズ,L),!. 画像の高さサイズ(Input,_画像の高さサイズ) :- findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L), number_codes(_画像の高さサイズ,L),!. 画像の最大階調レベル(Input,_画像の最大階調レベル) :- findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L), number_codes(_画像の最大階調レベル,L),!. 'Whitespace'(X) :- X < 48,X >57,!.
|

|