blob: e3455ade009c8a7173e442e0d67eb9ef01c726ba [file] [log] [blame]
import 'package:image/src/util/octree_quantizer.dart';
import '../image.dart';
import '../util/neural_quantizer.dart';
enum QuantizeMethod { neuralNet, octree }
/// Quantize the number of colors in image to 256.
Image quantize(Image src,
{int numberOfColors = 256,
QuantizeMethod method = QuantizeMethod.neuralNet}) {
if (method == QuantizeMethod.octree || numberOfColors < 4) {
OctreeQuantizer oct = OctreeQuantizer(src, numberOfColors: numberOfColors);
for (int i = 0, len = src.length; i < len; ++i) {
src[i] = oct.getQuantizedColor(src[i]);
}
return src;
}
NeuralQuantizer quant = NeuralQuantizer(src, numberOfColors: numberOfColors);
for (int i = 0, len = src.length; i < len; ++i) {
src[i] = quant.getQuantizedColor(src[i]);
}
return src;
}