bitmap-0.0.0: A library for handling and manipulating bitmaps.

Data.Bitmap.Pure

Contents

Synopsis

Documentation

emptyBitmapSource

Arguments

:: forall t . PixelComponent t 
=> Size

(width,height)

-> NChn

number of channels (components/pixel)

-> Maybe Alignment

the row alignment of the new image

-> Bitmap t 

A bitmap filled with zero values. Note: we cannot guarantee the alignment of the memory block (but typically it is aligned at least to machine word boundary), but what we can guarantee is that the rows are properly padded.

Mapping over bitmaps

componentMap :: PixelComponent s => (s -> s) -> Bitmap s -> Bitmap sSource

Warning: this is probably slow

componentMap' :: (PixelComponent s, PixelComponent t) => (s -> t) -> Bitmap s -> Maybe Alignment -> Bitmap tSource

Warning: this is probably slow

Cropping and extending

copySubImageSource

Arguments

:: PixelComponent t 
=> Bitmap t

source image

-> Offset

source rectangle offset

-> Size

source rectangle size

-> Bitmap t 

Copies a subrectangle of the source image into a new image.

copySubImage'Source

Arguments

:: PixelComponent t 
=> Bitmap t

source image

-> Offset

source rectangle offset

-> Size

source rectangle size

-> Size

target image size

-> Offset

target rectangle offset

-> Bitmap t 

Copy into a new "black" bitmap; common generalization of crop and extend.

Manipulating channels

extractSingleChannelSource

Arguments

:: PixelComponent t 
=> Bitmap t

source image

-> Maybe Alignment

target image row alignment

-> Int

source channel index

-> Bitmap t 

Conversion to ByteString

bitmapToByteString :: PixelComponent t => Bitmap t -> ByteStringSource

Note that the data is shared.