(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))))))