anchor.diff:            (t (error "Unsupported JPEG format: ~A" marker)))))
   
   ;;; Top level decoder function
  -(defun decode-image (filename &optional buffer)
  +(defun decode-image (filename &optional buffer &key (colorspace-conversion t))
     (with-open-file (in filename :direction :input :element-type 'uint8)
  -    (decode-stream in buffer)))
  +    (decode-stream in buffer :colorspace-conversion colorspace-conversion)))
   
   (defun decode-stream-height-width-ncomp (stream)
     "Return the height and width of the JPEG data read from STREAM. Does less work than
  
positive.code: 		 (error "Unsupported marker in the frame header"))
  	       (setf term (decode-scan image j s)))))
  
  (defun decode-stream (stream &optional buffer)
    "Return image array, height, width, and number of components. Does not support
  progressive DCT-based JPEGs."
    (unless (= (read-marker stream) +M_SOI+)
  
negative.code:          (marker (interpret-markers image 0 stream)))
      (cond ((= +M_SOF0+ marker)
             (decode-frame image stream buffer)
             (when (and colorspace-conversion (= (descriptor-ncomp image) 3))
               (inverse-colorspace-convert image))
             (values (descriptor-buffer image)
                     (descriptor-height image)
  