Dithering Algorithms for Julia
julia> using Ditherings
julia> img = load("lenna.png");
julia> Ditherings.FloydSteinbergDither4Sample(img, Ditherings.ZeroOne)
julia> Ditherings.FloydSteinbergDither4Sample(img, Ditherings.ZeroOne_PerChannel)
The aim of these funcions is that you can call a function which represents an error diffusion shape, and then pass in a palette function which maps the input function into the reduced precision space. Optionally you can also pass in custom weights for the error diffusion kernel