analyzeContrast static method

ContrastAnalysis analyzeContrast(
  1. Uint8List imageBytes
)

Analyzes contrast quality of the image.

Implementation

static ContrastAnalysis analyzeContrast(Uint8List imageBytes) {
  if (imageBytes.isEmpty) {
    return const ContrastAnalysis(
      contrastRatio: 0.0,
      isAdequate: false,
      dynamicRange: 0,
    );
  }

  int minVal = 255;
  int maxVal = 0;

  for (int i = 0; i < imageBytes.length; i++) {
    if (imageBytes[i] < minVal) minVal = imageBytes[i];
    if (imageBytes[i] > maxVal) maxVal = imageBytes[i];
  }

  final dynamicRange = maxVal - minVal;
  final contrastRatio = dynamicRange / 255.0;

  return ContrastAnalysis(
    contrastRatio: contrastRatio,
    isAdequate: contrastRatio > 0.3,
    dynamicRange: dynamicRange,
  );
}