[cl-pdf-devel] cl-pdf image question

Marc Battyani marc.battyani at fractalconcept.com
Wed May 9 17:11:29 UTC 2007


"Cyrus Harmon" <ch-lisp at bobobeach.com> wrote:

> On May 9, 2007, at 12:15 AM, Marc Battyani wrote:
>> What you do seems OK and it works when the image is converted to  
>> jpg. So there is probably a problem with the png reading.
>> Indeed (pdf::read-png-file "circles.png") gives a png-image with 4  
>> bytes.
> 
> Duh. Should have checked that I guess. Looks like we were only saving  
> the last chunk. The following patch fixes things.
> 
> Thanks again,
> 
> Cyrus
> 
> Index: png.lisp
> ===================================================================
> --- png.lisp (revision 139)
> +++ png.lisp (working copy)
> @@ -101,8 +101,15 @@
>                                 (let ((position (position 0 trns)))
>                                   (when position (list position))))))))
>                ((string= marker "IDAT") ; image data block
> -               (setq data (make-array octet-length :element-type  
> '(unsigned-byte 8)))
> -               (read-sequence data stream))
> +               (let ((start 0))
> +                 (if (null data)
> +                     (setf data (make-array octet-length
> +                                            :element-type '(unsigned- 
> byte 8)
> +                                            :adjustable t))
> +                     (progn
> +                       (setf start (first (array-dimensions data)))
> +                       (adjust-array data (+ start octet-length))))
> +                 (read-sequence data stream :start start)))
>                ((string= marker "IEND")
>                 (return))
>                (t ;"pHYs"

Thanks for the patch.
Does it work for you? I tried your example with LW and got an error.

Marc





More information about the cl-pdf-devel mailing list