diff options
author | Masaya Tojo <masaya@tojo.tokyo> | 2024-08-03 17:09:05 +0900 |
---|---|---|
committer | Masaya Tojo <masaya@tojo.tokyo> | 2024-08-03 17:09:05 +0900 |
commit | f7fed1949869f64c4f71936d12c8ae032e8f9005 (patch) | |
tree | 42a9065e0a31adb42136363d159db82c7285f718 /pnm/image.scm | |
parent | 831e793851d6a3be1b3fb0e6050af84715618aca (diff) |
Split pnm/pgm.scm and pnm/ppm.scm to organize interfaces
Diffstat (limited to 'pnm/image.scm')
-rw-r--r-- | pnm/image.scm | 35 |
1 files changed, 35 insertions, 0 deletions
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 <image> + (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)))))) |