Austin Seipp wrote:
Excerpts from Rafal Kolanski's message of Sun Sep 21 07:28:37 -0500 2008:
The best I can find is withImageSurfaceFromPNG, but I can't
make it work.

Why not? Seems to me all you need to do is:

 withImageSurfaceFromPNG "blah.png" $ \surface -> do
    ...

Lots of code is written this way (create a resource, pass it to a
function and then release it after the function is over.)

Well, but withImageSurfaceFromPNG only lets you work within that scope
and wipes out the surface straight afterwards ...

I tried playing around with unsafePerformIO but that just gets me into:

Without further context as to what you are doing, I really see no
reason why you would have to use unsafePerformIO at all.

The context is, I want to render a multi-page PDF with a variety of
things on it, so I have something like (very simplified):

main :: IO ()
main = do
    withPDFSurface outputFile pdfWidth pdfHeight renderer

renderer s = renderWith s renderPresentation

renderPresentation = do
    myDraw1
    showPage
    myDraw2
    showPage

myDraw1 = do
    setSourceRGB 1 0 0
    setLineWidth 1
    moveTo 0 0
    lineTo 100 100
    stroke

so renderPresentation will have type Render ()

Now lets say I want to draw an image on page 2, that will only appear on
page 2 ... with one image, your technique makes sense to me, but with
multiple images on multiple pages, I don't understand how to make it scale.

Perhaps this code is very naive, but I'm kinda new to the pure world of
Haskell.

Sincerely,

Rafal Kolanski.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to