aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Image.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Image.hs')
-rw-r--r--src/Text/Pandoc/Image.hs15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/Text/Pandoc/Image.hs b/src/Text/Pandoc/Image.hs
index e0c938938..cbc26c981 100644
--- a/src/Text/Pandoc/Image.hs
+++ b/src/Text/Pandoc/Image.hs
@@ -11,24 +11,25 @@ Portability : portable
Functions for converting images.
-}
module Text.Pandoc.Image ( svgToPng ) where
-import Text.Pandoc.Options (WriterOptions(..))
import Text.Pandoc.Process (pipeProcess)
import qualified Data.ByteString.Lazy as L
import System.Exit
import Data.Text (Text)
import Text.Pandoc.Shared (tshow)
import qualified Control.Exception as E
+import Control.Monad.IO.Class (MonadIO(liftIO))
-- | Convert svg image to png. rsvg-convert
-- is used and must be available on the path.
-svgToPng :: WriterOptions
+svgToPng :: MonadIO m
+ => Int -- ^ DPI
-> L.ByteString -- ^ Input image as bytestring
- -> IO (Either Text L.ByteString)
-svgToPng opts bs = do
- let dpi = show $ writerDpi opts
- E.catch
+ -> m (Either Text L.ByteString)
+svgToPng dpi bs = do
+ let dpi' = show dpi
+ liftIO $ E.catch
(do (exit, out) <- pipeProcess Nothing "rsvg-convert"
- ["-f","png","-a","--dpi-x",dpi,"--dpi-y",dpi]
+ ["-f","png","-a","--dpi-x",dpi',"--dpi-y",dpi']
bs
return $ if exit == ExitSuccess
then Right out