Skip to content

Instantly share code, notes, and snippets.

@wavewave
Created September 9, 2012 01:38
Show Gist options
  • Select an option

  • Save wavewave/3681954 to your computer and use it in GitHub Desktop.

Select an option

Save wavewave/3681954 to your computer and use it in GitHub Desktop.
make image(jpeg and png) files using data uri scheme into html (gd library is used)
{-# LANGUAGE OverloadedStrings #-}
import Graphics.GD.ByteString
import qualified Data.ByteString as B
import Data.ByteString.Char8 ()
-- import Data.ByteString.Base64.URL
import Data.ByteString.Base64
import Data.Monoid
pngtest :: IO B.ByteString
pngtest = do
putStrLn "png test"
img <- loadPngFile "notebook.png"
bstr <- savePngByteString img
let bstr' = encode bstr
return $ "<html><body><img src=\"data:image/png;base64," <> bstr' <> "\" /></body></html>"
jpgtest :: IO B.ByteString
jpgtest = do
putStrLn "jpg test"
img <- loadJpegFile "supersonic.jpg"
bstr <- saveJpegByteString (-1) img
let bstr' = encode bstr
return $ "<html><body><img src=\"data:image/jpeg;base64," <> bstr' <> "\" /></body></html>"
main :: IO ()
main = do
bstrpng <- pngtest
bstrjpg <- jpgtest
B.writeFile "pngtest.html" bstrpng
B.writeFile "jpgtest.html" bstrjpg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment