image_validator 0.2.0
image_validator: ^0.2.0 copied to clipboard
A comprehensive Dart package for image file validation supporting JPEG, PNG, WebP, HEIF, and AVIF formats with robust validation for file integrity, dimensions, and file sizes.
import 'dart:io';
import 'package:image_validator/image_validator.dart';
void main() async {
final imageFile = File('path/to/your/image.jpeg');
if (!imageFile.existsSync()) {
print('❌ Error: File not found at ${imageFile.path}');
print('Please update the file path in main.dart');
return;
}
print('\n═══ Setting Up Validators ═══');
print('Validators configured for all formats (JPEG, PNG, WebP, HEIF, AVIF)');
final factory = ImageValidatorFactory(
jpeg: [
SizeValidator(imagetype: ImageType.jpeg, maxSizeInMB: 10, minSizeInMB: 2),
DimensionValidator(
imagetype: ImageType.jpg,
minHeight: 100,
minWidth: 100,
maxHeight: 1000,
maxWidth: 1000),
CorruptValidator(imagetype: ImageType.jpg),
],
png: [
SizeValidator(imagetype: ImageType.png, maxSizeInMB: 10, minSizeInMB: 2),
DimensionValidator(
imagetype: ImageType.png,
minHeight: 100,
minWidth: 100,
maxHeight: 1000,
maxWidth: 1000),
CorruptValidator(imagetype: ImageType.png),
],
allowedtypes: [ImageType.jpeg, ImageType.png],
);
print('\n═══ Validating Image ═══');
final result = await factory.validate(file: imageFile);
print('\n═══ Validation Result ═══');
if (result.isValid) {
print('✓ Image validation passed!');
print(' File type: ${result.fileType}');
print(' File path: ${result.file?.path}');
print('\n✅ Image is ready for upload or storage');
} else {
print('✗ Image validation failed!');
print(' Error: ${result.errorMessage}');
print('\n❌ Please fix the issue and try again');
}
print('═══ Image Type Detection ═══');
final detector = ImageTypeDetector(
type: DetectorType.hybrid,
allowedtypes: [
ImageType.jpeg,
ImageType.jpg,
ImageType.png,
ImageType.webp,
ImageType.heif,
ImageType.avif
],
);
final imageType = detector.detect(imageFile);
print('Detected type: $imageType');
if (imageType == ImageType.unsupported) {
print('\n❌ Error: Unsupported image type');
print('Supported formats: JPEG, PNG, WebP, HEIF, AVIF');
return;
}
}