Class MedianCutQuantizer

java.lang.Object
net.sourceforge.plantuml.quantization.MedianCutQuantizer
All Implemented Interfaces:
ColorQuantizer

public final class MedianCutQuantizer extends Object implements ColorQuantizer
Implements median cut quantization.

The algorithm works as follows:

  • Begin with one cluster containing all the original colors.
  • Find the cluster containing the greatest spread along a single color component (red, green or blue).
  • Find the median of that color component among colors in the cluster.
  • Split the cluster into two halves, using that median as a threshold.
  • Repeat this process until the desired number of clusters is reached.
  • Field Details

  • Method Details

    • quantize

      public Set<QColor> quantize(Multiset<QColor> originalColors, int maxColorCount)
      Description copied from interface: ColorQuantizer
      Quantize the given set of colors, returning a set no larger than maxColors.

      The intent is to pick a set of colors which are representative of the original color set, but no specific guarantees are made.

      Specified by:
      quantize in interface ColorQuantizer
      Parameters:
      originalColors - the colors in the original image
      maxColorCount - the maximum number of colors to allow
      Returns:
      a quantized collection of colors no larger than maxColors