LISP - как создать растровый файл по сценарию?
Я новичок здесь, поэтому, пожалуйста, будьте мягки со мной =)
Я пытаюсь разработать сценарий на LISP (извините, нет другого языка) для создания растрового файла. Я пошел на другой веб-сайт о формате растрового изображения, но меня беспокоит сама процедура.
Используя LISP (и perl / awk, моя среда - Linux RHEL5), я могу создать только текстовый файл с "обычными" ASCII-кодами (я имею в виду печатный / отображаемый).
Моя проблема касается символов, которые нельзя распечатать. Например, если я хочу поместить в заголовок растрового изображения шестнадцатеричную цепочку 00 00 00 00, каким будет соответствующий код ASCII?
как я могу напечатать их в файле?
Большое спасибо за вашу помощь и разъяснения!
Лучший,
Р-чан
2 ответа
Common Lisp может читать / записывать любые двоичные данные, которые вам нравятся.
Вам нужно открыть поток в виде двоичного потока и использовать такие функции, как READ-BYTE
, WRITE-BYTE
, READ-SEQUENCE
а также WRITE-SEQUENCE
,
Пример:
(with-open-file (s "temp-bytes"
:direction :output
:element-type 'unsigned-byte)
(write-byte 101 s))
Помимо побайтных операций (см. Ответ Райнера), вы можете использовать такую библиотеку, как opticl
,