classifyImageError function
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;
}