#ifndef __DITHER_H
#define __DITHER_H

#include <string>
#include "png++/png.hpp"
void dither(png::image<png::rgb_pixel>& in, png::image<png::index_pixel>& out, const std::string colorspace, const std::string palette_mask, const std::string palette_remap, const std::string dither_type, const float error_factor);

struct dither_desc {
	const int x, y, num, den;
};

#include <unordered_map>
extern std::unordered_map<std::string, std::vector<dither_desc> > dither_types;

#endif // __DITHER_H
