我正在尝试将相机中的一张照片与本地保存在 hive 中的 100 多张图像进行比较,并找出 flutter 中最匹配的一张。
例如我想通过拍摄书的封面照片来找出我面前的一本书的信息,并查看照片中是否显示了 hive 中保存的任何书的封面。
也许我用错了它,我尝试了 image_compare 包,但花了一些时间才给我,因为它甚至对 2 个图像比较也一一比较像素。
想知道在这种情况下是否有更有效的方法或包可以使用?
非常感谢。
请理解以下根据您的情况进行修改的用例。希望这能回答您的疑问。
import 'package:equatable/equatable.dart';
void main() {
ImageLocalModel saveImageInHive = ImageLocalModel(base64Image: '',imageName: 'image1',pickedAt: DateTime.now().toString());
ImageLocalModel pickedImage = ImageLocalModel(base64Image: '',imageName: 'image1',pickedAt: DateTime.now().toString());
//Check directly with equal operator
print(saveImageInHive == pickedImage);
}
class ImageLocalModel extends Equatable {
final String base64Image;
final String imageName;
final DateTime pickedAt;
const ImageLocalModel({
required this.base64Image,
required this.imageName,
required this.pickedAt,
});
@override
List<Object?> get props => [base64Image, imageName, pickedAt];
factory ImageLocalModel.fromJson(Map<String, dynamic> json) {
return ImageLocalModel(
base64Image: json['base64Image'],
imageName: json['imageName'],
pickedAt: DateTime.parse(json['pickedAt']),
);
}
Map<String, dynamic> toJson() {
return {
'base64Image': base64Image,
'imageName': imageName,
'pickedAt': pickedAt.toIso8601String(),
};
}
}