What's the final destination for these images? A pdf file, I guess? Is it combined with other stuff in the pdf file, or does the pdf file have just the image in it?
Robby On Sun, Dec 7, 2014 at 9:53 PM, Daniel Prager <daniel.a.pra...@gmail.com> wrote: > I have some code that writes individual images to pdfs (see below). > > If there's a lot of "texture" in the images, these files can be very large > indeed. > > I assume that by default the image is encoded as a kind of embedded png. > > I would like to be able to change the compression -- e.g. specify jpeg. > > My currently workaround is to save from Racket as a png, and then convert > externally via ImageMagick: first to jpeg, then to pdf. > > (How) can I achieve the same result directly from Racket? > > > Many thanks > > Dan > > ---- > > #lang racket > > (require racket/draw > (only-in 2htdp/image > save-image > image-width > image-height > scale)) > > (define (image->bitmap image) > (let* ([width (image-width image)] > [height (image-height image)] > [bm (make-bitmap width height)] > [dc (send bm make-dc)]) > (send dc clear) > (send image draw dc 0 0 0 0 width height 0 0 #f) > bm)) > > (define (image->pdf image output-file [mag 1.0]) > (define dc > (new pdf-dc% > [ interactive #f ] > [ use-paper-bbox #f ] > [ width (* 0.8 mag (image-width image))] ; Default scale is 0.8 > 0.8 > [ height (* 0.8 mag (image-height image))] > [ output output-file ])) > > (send* dc > (scale mag mag) > (start-doc "useless string") > (start-page)) > > (send dc draw-bitmap (image->bitmap image) 0 0) > > (send* dc > (end-page) > (end-doc))) > > (module+ test > (require (only-in 2htdp/image > circle text square overlay above)) > > (define im > (overlay > (above > (circle 50 'solid 'red) > (text "This is a red circle" 12 'black)) > (square 150 'solid 'lightblue))) > > (image->pdf im "image-test.pdf") > (save-image im "image-test.png")) > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > ____________________ Racket Users list: http://lists.racket-lang.org/users