Skip to content

Instantly share code, notes, and snippets.

@satosystems
Last active February 17, 2016 16:17
Show Gist options
  • Save satosystems/cf4f77768e25fd7b69dd to your computer and use it in GitHub Desktop.
Save satosystems/cf4f77768e25fd7b69dd to your computer and use it in GitHub Desktop.
Haskell でサムネイル生成 ref: http://qiita.com/satosystems/items/abdb9696185f647b65a2
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Trans.Resource (runResourceT)
import qualified Data.ByteString.Lazy as LBI
import Data.Default (def)
import Data.Either (either)
import Graphics.ThumbnailPlus ( CreatedThumbnails(..)
, createThumbnails
, Configuration(..)
, Size(..)
, Thumbnail(..)
)
import System.Directory (renameFile)
file :: FilePath
file = "img/original.jpg"
conf :: Configuration
conf = def { maxFileSize = 1024 * 1024 * 100
, thumbnailSizes = [ ( Size 200 200
, Nothing
)
]
}
main :: IO ()
main = do
jpeg <- LBI.readFile file
runResourceT $ do
CreatedThumbnails (_:[t]) _ <- createThumbnails conf file
liftIO $ renameFile (thumbFp t) "img/thumb2.jpg"
return ()
import qualified Data.ByteString.Lazy as LBI
import Graphics.Thumbnail (mkThumbnail', Thumbnail(..))
file :: FilePath
file = "img/original.jpg"
main :: IO ()
main = do
jpeg <- LBI.readFile file
Right thumb <- mkThumbnail' ((50, 50), (200, 200)) jpeg
saveFile thumb "img/thumb1.jpg"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment