import '../color.dart';
import '../image.dart';

/**
 * Find the minimum and maximum color value in the image.
 * Returns a list as <[min], [max]>.
 */
List<int> minMax(Image image) {
  int min = 255;
  int max = 0;
  final int len = image.length;
  for (int i = 0; i < len; ++i) {
    int c = image[i];
    int r = getRed(c);
    int g = getGreen(c);
    int b = getBlue(c);

    if (r < min) {
      min = r;
    }
    if (r > max) {
      max = r;
    }
    if (g < min) {
      min = g;
    }
    if (g > max) {
      max = g;
    }
    if (b < min) {
      min = b;
    }
    if (b > max) {
      max = b;
    }
    if (image.format == Image.RGBA) {
      int a = getAlpha(c);
      if (a < min) {
        min = a;
      }
      if (a > max) {
        max = a;
      }
    }
  }

  return [min, max];
}