JuicyPixels-repa-0.7.0.1: Convenience functions to obtain array representations of images.

Safe HaskellNone
LanguageHaskell98

Codec.Picture.Repa

Contents

Synopsis

Primitive types and operations

data Img a Source

Img a is an image where the phantom type a indicates the image format

All images are held in a three dimensional repa array. If the image format is only two dimensional (ex: R, G, or B) then the shape is Z :. y :. x :. 1.

convertImage :: ConvertImage a b => a -> Img b Source

Converts from JuicyPixels type (Usually Image or DynamicImage to the repa-based Img type.

Generic interface

readImage :: DecodeImage a => FilePath -> IO (Either String (Img a)) Source

decodeImage :: DecodeImage a => ByteString -> Either String (Img a) Source

Monomorphic image decoding functions

Image Representations (Phantom Types)

data RGBA Source

A 32-bit image with full red, green, blue and alpha channels.

The image is stored as Height x Width x ColorChannel.

The color channel is stored in RGBA order. For the common OpenGL ordering users might want to use reverseColorChannel.

data RGB Source

A 24-bit image with red, green and blue channels

data R Source

An all-red image

data G Source

An all-green image

data B Source

An all-blue image

Helper Functions (useful for OpenGL etc.)

toForeignPtr :: Img RGBA -> (ForeignPtr Word8, Int, Int) Source

O(n) returning (pointer, length, offset)

toByteString :: Img a -> ByteString Source

toByteString arr converts images to bytestrings, which is often useful for Gloss.

toUnboxed :: Img a -> Vector Word8 Source

O(n) Convert to an unboxed vector

class Collapsable a t where Source

Methods

collapseColorChannel :: Img a -> Array D DIM2 t Source

Converts the color channel into a tuple:

reverseColorChannel :: Img a -> Img a Source

By default, the color channel for RGBA indexes 0 -> R, 1 -> G, 2 -> B, 3 -> A. This is the AGBR byte ordering in OpenGL. For rendering with OpenGL's RGBA PixelFormat be sure to call reverseColorChannel before converting to a Vector.

flipHorizontally :: Array D DIM3 Word8 -> Array D DIM3 Word8 Source

Flip an image horizontally

flipVertically :: Array D DIM3 Word8 -> Array D DIM3 Word8 Source

Flip an image vertically

vConcat :: [Img a] -> Img a Source

Combines a list of images such that the first image is on top, then the second, and so on.

hConcat :: [Img a] -> Img a Source

Combines a list of images such that the first image is on the left, then the second, and so on.

Saving Images

Internal Functionallity (exported for advanced uses)