import 'package:google_mlkit_face_detection/google_mlkit_face_detection.dart';
import 'package:image_picker/image_picker.dart';
late ImagePicker _picker;
late FaceDetector _faceDetector;
dynamic _image;
Size? _imageSize;
List<Face> _faces = [];
@override
void initState() {
super.initState();
_picker = ImagePicker();
_faceDetector = FaceDetector(
options: FaceDetectorOptions(),
);
}
@override
void dispose() {
_faceDetector.close();
super.dispose();
}
Future<void> _getAndScanImage({final bool? isFromCamera}) async {
setState(() {
_image = null;
_faces = [];
_imageSize = null;
});
final imageXFile = await _picker.pickImage(
source: isFromCamera != null && isFromCamera ? ImageSource.camera : ImageSource.gallery,
);
if (imageXFile != null) {
final inputImage = InputImage.fromFilePath(imageXFile.path);
final facesList = await _faceDetector.processImage(inputImage);
final imageAsBytes = await imageXFile.readAsBytes();
final imageDecoded = await decodeImageFromList(imageAsBytes);
setState(
() {
_faces = facesList;
_image = imageDecoded;
_imageSize = Size(
imageDecoded.width.toDouble(),
imageDecoded.height.toDouble(),
);
},
);
}
}
Expanded(
child: FittedBox(
child: SizedBox(
width: _imageSize!.width,
height: _imageSize!.height,
child: CustomPaint(
painter: FacePainter(
faceList: _faces,
imageFile: _image,
),
),
),
),
),
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
import 'package:image_picker/image_picker.dart';
late TextRecognizer _recognizer;
File? _imageFile;
String _scanResults = '';
@override
void initState() {
super.initState();
_recognizer = TextRecognizer();
);
}
@override
void dispose() {
_recognizer.close();
super.dispose();
}
Future<void> _getAndScanImage() async {
setState(() {
_imageFile = null;
_scanResults = '';
});
final XFile? pickedImage = await ImagePicker().pickImage(
source: ImageSource.gallery,
);
if (pickedImage != null) {
final File imageFile = File(pickedImage.path);
setState(() {
_imageFile = imageFile;
});
await _scanImage(imageFile);
}
}
Future<void> _scanImage(File imageFile) async {
final results = await _recognizer.processImage(
InputImage.fromFile(
_imageFile!,
),
);
setState(() {
_scanResults = results.text;
});
}
import 'package:speech_to_text/speech_recognition_result.dart';
import 'package:speech_to_text/speech_to_text.dart';
late SpeechToText _speechToText;
String _recognizedText = '';
@override
void initState() {
super.initState();
_speechToText = SpeechToText();
);
}
@override
void dispose() {
_speechToText.cancel();
super.dispose();
}
Future<void> _startListening() async {
setState(() {
_recognizedText = '';
});
await _speechToText.listen(
pauseFor: const Duration(seconds: 2),
listenOptions: SpeechListenOptions(
listenMode: ListenMode.dictation,
),
onResult: _onSpeechResult,
);
}
Future<void> _stopListening() async {
await _speechToText.stop();
setState(() {});
}
void _onSpeechResult(
SpeechRecognitionResult result,
) {
setState(() {
_recognizedText = result.recognizedWords;
});
}