Instead of saving an image into a file using write-image-to-file I was trying to provide a hunchentoot handler which outputs an array of bytes (just like in the hunchentoot test.lisp image-ram-page example). For this I thought write-jpeg-to-stream would be the best candidate so I did following:

  (let ((s (make-string-output-stream :element-type '(unsigned-byte 8))))
        (write-jpeg-to-stream s :image bg-image)
        (let ((image-data (make-array (image-size bg-image) :element-type '(unsigned-byte 8))))
          (read-sequence image-data s)
          image-data)))))))

For which the SBCL complains:
#<SB-IMPL::STRING-OUTPUT-STREAM {CE6D171}> is not a binary output stream.

I am wondering if I am doing the right thing and choosing the right function for the task. I also tried to create a stream with flexi-stream: make-in-memory-output-stream without any success.

Thank you,
Andrew