base85ï
The base85 library provides predicates for encoding and decoding
data in the Base85 (Ascii85) format. Ascii85 is used in PostScript and
PDF files. The encoding uses printable ASCII characters from ! (33)
to u (117). A special shortcut z represents four zero bytes. For
more details, see for example:
https://en.wikipedia.org/wiki/Ascii85
API documentationï
Open the ../../apis/library_index.html#base85 link in a web browser.
Loadingï
To load all entities in this library, load the loader.lgt utility
file:
| ?- logtalk_load(base85(loader)).
Testingï
To test this library predicates, load the tester.lgt file:
| ?- logtalk_load(base85(tester)).
Encodingï
Encoding a list of bytes in Base85 format is accomplished by the
base85::generate/2 predicate. For example:
| ?- atom_codes('Man ', Bytes),
base85::generate(atom(Base85), Bytes).
Base85 = '9jqo^'
Bytes = [77,97,110,32]
yes
Four zero bytes are encoded as the special character z:
| ?- base85::generate(atom(Base85), [0, 0, 0, 0]).
Base85 = 'z'
yes
Decodingï
Decoding of Base85 data is accomplished using the base85::parse/2
predicate. For example:
| ?- base85::parse(atom('9jqo^'), Bytes),
atom_codes(Atom, Bytes).
Atom = 'Man '
Bytes = [77,97,110,32]
yes
The parser also accepts input with optional <~ and ~>
delimiters:
| ?- base85::parse(atom('<~9jqo^~>'), Bytes),
atom_codes(Atom, Bytes).
Atom = 'Man '
Bytes = [77,97,110,32]
yes