classifyImageError function

ImageErrorType classifyImageError(
  1. Object error
)

Classifies image processing errors for analytics.

Implementation

ImageErrorType classifyImageError(Object error) {
  final message = error.toString().toLowerCase();

  if (message.contains('module not found') ||
      message.contains('dlopen') ||
      message.contains('native image processor module not available')) {
    return ImageErrorType.moduleLoad;
  }
  if (message.contains('unsupported image format') ||
      message.contains('input buffer') ||
      message.contains('corrupt header') ||
      message.contains('corrupt image') ||
      message.contains('premature end') ||
      message.contains('zero width') ||
      message.contains('zero height')) {
    return ImageErrorType.processing;
  }
  if (message.contains('pixel limit') ||
      message.contains('too many pixels') ||
      message.contains('image dimensions')) {
    return ImageErrorType.pixelLimit;
  }
  if (message.contains('out of memory') ||
      message.contains('cannot allocate') ||
      message.contains('memory allocation')) {
    return ImageErrorType.memory;
  }
  if (message.contains('timeout') || message.contains('timed out')) {
    return ImageErrorType.timeout;
  }
  if (message.contains('vips')) {
    return ImageErrorType.vips;
  }
  if (message.contains('permission denied') || message.contains('eacces')) {
    return ImageErrorType.permission;
  }
  return ImageErrorType.unknown;
}