Portability | ghc |
---|---|
Stability | unstable |
Maintainer | Andy Gill <andygill@ku.edu> |
This module coverts 2D arrays into Board
s, and back, and supplies basic dithering algorithms.
- boardToArray :: Average a => (Int, Int) -> Int -> Board a -> Array (Int, Int) a
- arrayToBoard :: (Lerp a, Scale a) => Array (Int, Int) a -> Board (Maybe a)
- threshold :: Floating a => (a -> a) -> Array (Int, Int) a -> Array (Int, Int) a
- floydSteinberg :: Floating a => (a -> a) -> Array (Int, Int) a -> Array (Int, Int) a
Converters
:: Average a | |
=> (Int, Int) | the x,y size of the image to be captured. We assume the bottom left hand size is 0,0. |
-> Int | the square root of the amount of super-sampling to be done. I recommend 3, which is 9 points. |
-> Board a | the board to sample. |
-> Array (Int, Int) a | the result array. |
boardToArray
turns a Board into a 2D Array (pixelization).
arrayToBoard :: (Lerp a, Scale a) => Array (Int, Int) a -> Board (Maybe a)Source
arrayToBoard
turns a 2D Array into a Board, using bi-linear inteprelation.
Dithering
threshold :: Floating a => (a -> a) -> Array (Int, Int) a -> Array (Int, Int) aSource
threshold
quantized based on a simple, pointwise function.
floydSteinberg :: Floating a => (a -> a) -> Array (Int, Int) a -> Array (Int, Int) aSource
floydSteinberg
quantized using the Floyd Steinberg algorithm.