hip-1.3.0.0: src/Graphics/Image/Interface/Repa.hs
{-# LANGUAGE FlexibleContexts #-}
-- |
-- Module : Graphics.Image.Interface.Repa
-- Copyright : (c) Alexey Kuleshevich 2016
-- License : BSD3
-- Maintainer : Alexey Kuleshevich <lehins@yandex.ru>
-- Stability : experimental
-- Portability : non-portable
--
module Graphics.Image.Interface.Repa (
-- * Construction
makeImageS, makeImageP, fromListsS, fromListsP,
-- * Representation
RS(..), RP(..),
-- * Conversion
fromRepaArrayS, fromRepaArrayP, toRepaArray
) where
import Graphics.Image.Interface hiding (makeImage, fromLists)
import qualified Graphics.Image.Interface as I (makeImage, fromLists)
import Graphics.Image.Interface.Repa.Internal
-- | Create an image with sequential array representation.
makeImageS :: Array RS cs Double =>
(Int, Int) -- ^ (@m@ rows, @n@ columns) - dimensions of a new image.
-> ((Int, Int) -> Pixel cs Double)
-- ^ A function that takes (@i@-th row, and @j@-th column) as an argument
-- and returns a pixel for that location.
-> Image RS cs Double
makeImageS = I.makeImage
{-# INLINE makeImageS #-}
-- | Create an image with parallel array representation.
makeImageP :: Array RP cs Double =>
(Int, Int) -- ^ (@m@ rows, @n@ columns) - dimensions of a new image.
-> ((Int, Int) -> Pixel cs Double)
-- ^ A function that takes (@i@-th row, and @j@-th column) as an argument
-- and returns a pixel for that location.
-> Image RP cs Double
makeImageP = I.makeImage
{-# INLINE makeImageP #-}
-- | Construct an image from a nested rectangular shaped list of pixels sequentially.
fromListsS
:: Array RS cs e
=> [[Pixel cs e]] -> Image RS cs e
fromListsS = I.fromLists
{-# INLINE fromListsS #-}
-- | Construct an image from a nested rectangular shaped list of pixels in parallel.
fromListsP
:: Array RP cs e
=> [[Pixel cs e]] -> Image RP cs e
fromListsP = I.fromLists
{-# INLINE fromListsP #-}