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