photo_analyzer 0.0.9
photo_analyzer: ^0.0.9 copied to clipboard
A Flutter package for photo analyzer that detects faces, estimates age and gender, and classifies NSFW (Not Safe for Work) content. This package uses advanced algorithms to analyze images and extract [...]
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:photo_analyzer/photo_analyzer.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<Uint8List> bytesList = [];
final _photoAnalyzerPlugin = PhotoAnalyzer();
@override
void initState() {
super.initState();
initPlatformState();
}
Future<void> initPlatformState() async {
try {
await _photoAnalyzerPlugin.initialize();
} on PlatformException catch (e) {
debugPrint(e.toString());
}
}
Future<void> detectNSFW() async {
try {
final ByteData data = await rootBundle.load('assets/bikini.jpeg');
final Uint8List imageData = data.buffer.asUint8List();
final result = await _photoAnalyzerPlugin.nsfwDetection(image: imageData);
debugPrint(result);
} on PlatformException catch (e) {
debugPrint(e.toString());
}
}
Future<void> detectFace() async {
try {
final ByteData data = await rootBundle.load('assets/bikini.jpeg');
final Uint8List imageData = data.buffer.asUint8List();
final result = await _photoAnalyzerPlugin.detectFaces(image: imageData);
setState(() {
bytesList = result.cast<Uint8List>();
});
} on PlatformException catch (e) {
debugPrint(e.toString());
}
}
Future<void> detectGender() async {
try {
final ByteData data = await rootBundle.load('assets/nsfw.jpeg');
final Uint8List imageData = data.buffer.asUint8List();
final result =
await _photoAnalyzerPlugin.genderPrediction(image: imageData);
debugPrint(result);
} on PlatformException catch (e) {
debugPrint(e.toString());
}
}
Future<void> detectAge() async {
try {
final ByteData data = await rootBundle.load('assets/nsfw.jpeg');
final Uint8List imageData = data.buffer.asUint8List();
final result = await _photoAnalyzerPlugin.agePrediction(image: imageData);
debugPrint(result);
} on PlatformException catch (e) {
debugPrint(e.toString());
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: SingleChildScrollView(
physics: const BouncingScrollPhysics(),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
if (bytesList.isNotEmpty)
ListView.builder(
physics: const NeverScrollableScrollPhysics(),
itemCount: bytesList.length,
shrinkWrap: true,
itemBuilder: (context, index) {
return Image.memory(bytesList[index]);
},
),
ElevatedButton(
onPressed: () {
detectNSFW();
},
child: const Text('Detect NSFW'),
),
ElevatedButton(
onPressed: () {
detectFace();
},
child: const Text('Detect Face'),
),
ElevatedButton(
onPressed: () {
detectGender();
},
child: const Text('Detect Gender'),
),
ElevatedButton(
onPressed: () {
detectAge();
},
child: const Text('Detect Age'),
),
],
),
),
),
);
}
}