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/image.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 pnm/image.scm (limited to 'pnm/image.scm') diff --git a/pnm/image.scm b/pnm/image.scm new file mode 100644 index 0000000..449afc6 --- /dev/null +++ b/pnm/image.scm @@ -0,0 +1,35 @@ +(define-library (pnm image) + (export make-image + image? + image-type + image-width + image-height + image-maxval + image-data + image-pixel-getter + image-pixel-setter + image-ref + image-set!) + (import (scheme base) + (scheme case-lambda)) + (begin + (define-record-type + (make-image type width height maxval data pixel-getter pixel-setter) + image? + (type image-type) + (width image-width) + (height image-height) + (maxval image-maxval) + (data image-data) + (pixel-getter image-pixel-getter) + (pixel-setter image-pixel-setter)) + + (define (image-ref image x y) + ((image-pixel-getter image) x y)) + + (define image-set! + (case-lambda + ((image x y v) + ((image-pixel-setter image) x y v)) + ((image x y r g b) + ((image-pixel-setter image) x y r g b)))))) -- cgit v1.2.3