ghc-exactprint-0.3: tests/examples/Undefined9.hs
{-# LANGUAGE QuasiQuotes, TypeFamilies #-}
module Image.PNG (isPNG, pngSize) where
import Data.Maybe
import File.Binary.PNG
import File.Binary
import File.Binary.Instances
import File.Binary.Instances.BigEndian
isPNG :: String -> Bool
isPNG img = isJust (fromBinary () img :: Maybe (PNGHeader, String))
pngSize :: String -> Maybe (Double, Double)
pngSize src = case getChunks src of
Right cs -> Just
(fromIntegral $ width $ ihdr cs, fromIntegral $ height $ ihdr cs)
_ -> Nothing
[binary|
PNGHeader deriving Show
1: 0x89
3: "PNG"
2: "\r\n"
1: "\SUB"
1: "\n"
|]