Hello,
I think there is a small bug in the grayscale version of the convolve method. Here is the diff:
$ diff convolve.lisp convolve-orig.lisp 64c64 < (incf sum (* (gray-intensity (image-pixel image x2 y2)) ---
(incf sum (* (image-pixel image x2 y2)
another detail: SBCL complaints about a declaration in color.lisp:
$ diff color.lisp color-orig.lisp 91,95c91 < (let ((colormap < #-sbcl(make-array 256 :element-type '(unsigned-byte 8)) < ;; make-color does not return an (unsigned-byte 8) sbcl does < ;; not like that. < #+sbcl(make-array 256))) ---
(let ((colormap (make-array 256 :element-type '(unsigned-byte 8))))