From f7fed1949869f64c4f71936d12c8ae032e8f9005 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Sat, 3 Aug 2024 17:09:05 +0900 Subject: Split pnm/pgm.scm and pnm/ppm.scm to organize interfaces --- pnm/write.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 pnm/write.scm (limited to 'pnm/write.scm') diff --git a/pnm/write.scm b/pnm/write.scm new file mode 100644 index 0000000..038bf82 --- /dev/null +++ b/pnm/write.scm @@ -0,0 +1,25 @@ +(define-library (pnm write) + (export image-write) + (import (scheme base) + (pnm image)) + (begin + (define (image-write image out) + (define (write-string-u8 str) + (string-for-each (lambda (c) (write-u8 (char->integer c) out)) + str)) + (case (image-type image) + ((ppm) + (write-string-u8 "P6\n")) + ((pgm) + (write-string-u8 "P5\n")) + (else + (error "(pnm write) pnm-write: Not supported type" (image-type image)))) + (write-string-u8 (number->string (image-width image))) + (write-string-u8 "\n") + (write-string-u8 (number->string (image-height image))) + (write-string-u8 "\n") + (case (image-type image) + ((pgm ppm) + (write-string-u8 (number->string (image-maxval image))) + (write-string-u8 "\n"))) + (write-bytevector (image-data image) out)))) -- cgit v1.2.3