-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | simple image manipulation functions
--   
--   Simple set of functions for image manipulation: contrast, brightnesss,
--   rotation, etc.
@package picedit
@version 0.2.3.0


module Data.Picture

-- | (R, G, B, A) color channels
type Picture = (Matrix Double, Matrix Double, Matrix Double, Matrix Double)

-- | Turn the <a>Picture</a> grayscale
grayscale :: Picture -> Picture

-- | Fade the <a>Picture</a> by a number between 0 and 1
fade :: Double -> Picture -> Picture

-- | Rotate <a>Picture</a> for the specified degrees, around the specified
--   origin. If the origin is <a>Nothing</a>, rotates around the center
rotate :: Double -> Maybe (Int, Int) -> Picture -> Picture

-- | Set contrast level of <a>Picture</a>, a number between -255 and 255
contrast :: Double -> Picture -> Picture

-- | Set brightness level of <a>Picture</a>, a number between -255 and 255
brightness :: Double -> Picture -> Picture

-- | Set gamma level of <a>Picture</a>
gamma :: Int -> Picture -> Picture

-- | Inverts the <a>Picture</a>
invert :: Picture -> Picture

-- | Compress the image using SVD note: this is not size compression, it's
--   just a k-rank approximation of the image
compress :: Int -> Picture -> Picture

-- | Embed a <a>Picture</a> into another one, in the specified position-}
embed :: Picture -> (Int, Int) -> Picture -> Picture

-- | Resize an image using nearest-neighbor interpolation
resize :: (Int, Int) -> Picture -> Picture

-- | Scale an image using the resize function
scale :: Double -> Picture -> Picture

-- | Converts a JuicyPixel 'Image PixelRGBA8' to <a>Picture</a>
fromImage :: Image PixelRGBA8 -> Picture

-- | Converts a <a>Picture</a> to JuicyPixel 'Image PixelRGBA8'
toImage :: Picture -> Image PixelRGBA8

-- | Reads a <a>Picture</a> from specified path
readPicture :: FilePath -> IO (Either String Picture)

-- | Write the specified <a>Picture</a> to a PNG file
writePicturePng :: FilePath -> Picture -> IO ()
