photo_validation_and_enhancement 0.0.7 copy "photo_validation_and_enhancement: ^0.0.7" to clipboard
photo_validation_and_enhancement: ^0.0.7 copied to clipboard

A comprehensive Flutter package for photo quality validation, face analysis, and image enhancement.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:photo_validation_and_enhancement/photo_validation_and_enhancement.dart';

void main() {
  runApp(const PhotoEnhancementExampleApp());
}

class PhotoEnhancementExampleApp extends StatelessWidget {
  const PhotoEnhancementExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Photo Validation Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const PhotoEnhancementHomeScreen(),
    );
  }
}

class PhotoEnhancementHomeScreen extends StatefulWidget {
  const PhotoEnhancementHomeScreen({super.key});

  @override
  State<PhotoEnhancementHomeScreen> createState() =>
      _PhotoEnhancementHomeScreenState();
}

class _PhotoEnhancementHomeScreenState
    extends State<PhotoEnhancementHomeScreen> {
  final ImageQualityGateService _qualityGate = ImageQualityGateService();
  final ImageEnhancementService _enhancer = ImageEnhancementService();

  File? _processedImage;
  String? _statusText;
  bool _isLoading = false;

  Future<void> _processImage(File imageFile) async {
    setState(() {
      _isLoading = true;
      _statusText = 'Validating...';
    });

    try {
      final validationResult = await _qualityGate.validate(imageFile);

      if (!validationResult.isAccepted) {
        setState(() {
          _statusText = 'Rejected: ${validationResult.rejectionReason}';
          _isLoading = false;
        });
        return;
      }

      setState(() {
        _statusText = 'Enhancing...';
      });

      final enhancedFile = await _enhancer.enhanceImage(imageFile);

      setState(() {
        _processedImage = enhancedFile;
        _statusText = 'Photo processed successfully!';
        _isLoading = false;
      });
    } catch (e) {
      setState(() {
        _statusText = 'Error: $e';
        _isLoading = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Photo Validation & Enhancement'),
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              if (_processedImage != null)
                Expanded(
                  child: Image.file(_processedImage!),
                )
              else
                const Icon(Icons.image, size: 100, color: Colors.grey),
              if (_isLoading)
                const CircularProgressIndicator()
              else if (_statusText != null)
                Padding(
                  padding: const EdgeInsets.symmetric(vertical: 20.0),
                  child: Text(
                    _statusText!,
                    textAlign: TextAlign.center,
                    style: const TextStyle(
                        fontSize: 16, fontWeight: FontWeight.bold),
                  ),
                ),
              const SizedBox(height: 20),
              ElevatedButton.icon(
                onPressed: () {
                  // In a real app, use image_picker to select a file
                  // exampleImageFile = File(path);
                  // _processImage(exampleImageFile);
                },
                icon: const Icon(Icons.photo_camera),
                label: const Text('Pick and Process Photo'),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 10.0),
                child: Text(
                  'Note: Add image_picker in real use-case.',
                  style: TextStyle(fontSize: 12, color: Colors.grey),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
130
points
25
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter package for photo quality validation, face analysis, and image enhancement.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

exif, flutter, google_mlkit_face_detection, google_mlkit_selfie_segmentation, google_mlkit_subject_segmentation, image, path_provider

More

Packages that depend on photo_validation_and_enhancement