Новое применение для Guile-SMC:
$ cat ~/Pictures/image.png | ./test.scm
Aug 7 16:35:32 guile-smc: [read_header] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_ihdr_chunk]
Aug 7 16:35:32 guile-smc: [handle_ihdr_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_iccp_chunk]
Aug 7 16:35:32 guile-smc: [handle_iccp_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_phys_chunk]
Aug 7 16:35:32 guile-smc: [handle_phys_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_time_chunk]
Aug 7 16:35:32 guile-smc: [handle_time_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_text_chunk]
Aug 7 16:35:32 guile-smc: [handle_text_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_idat_chunk]
Aug 7 16:35:32 guile-smc: [handle_idat_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_iend_chunk]
Aug 7 16:35:32 guile-smc: [handle_iend_chunk] -> [*]
PNG chunks:
#
#
#
#
#
#
#
$ cat ~/Pictures/image.png | ./test.scm
Aug 7 16:35:32 guile-smc: [read_header] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_ihdr_chunk]
Aug 7 16:35:32 guile-smc: [handle_ihdr_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_iccp_chunk]
Aug 7 16:35:32 guile-smc: [handle_iccp_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_phys_chunk]
Aug 7 16:35:32 guile-smc: [handle_phys_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_time_chunk]
Aug 7 16:35:32 guile-smc: [handle_time_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_text_chunk]
Aug 7 16:35:32 guile-smc: [handle_text_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_idat_chunk]
Aug 7 16:35:32 guile-smc: [handle_idat_chunk] -> [read_chunk]
Aug 7 16:35:32 guile-smc: [read_chunk] -> [handle_iend_chunk]
Aug 7 16:35:32 guile-smc: [handle_iend_chunk] -> [*]
PNG chunks:
#
#
#
#
#
#
#