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,

Другие вопросы по тегам