如何将gps数据添加到图像中,flutter image_picker Android



没有gps数据添加到颤振图像_分拣机图像

final pickedFile = await imagePicker.getImage(source: ImageSource.camera);
final bytes = await pickedFile.readAsBytes();
final tags = await readExifFromBytes(bytes);
print("Tags : $tags ");

标签:(没有Gps数据(

{Image ImageWidth: 4624, Image Model: Redmi Note 8 Pro, Image ImageLength: 3472, Image Orientation: Rotated 90 CW, Image DateTime: 2020:11:15 18:15:14, Image ExifOffset: 142, Image Make: Xiaomi, EXIF FNumber: 189/100, EXIF FocalLength: 543/100, EXIF ExposureTime: 50003/1000000, EXIF Flash: Flash did not fire, EXIF ISOSpeedRatings: 3750, EXIF ExifImageLength: 3472, EXIF ExifImageWidth: 4624, EXIF ApertureValue: 46/25, EXIF ShutterSpeedValue: -431/100, EXIF SubSecTime: 530}

顺便说一句,它没有要求我在拍照时允许定位(第一次(,我必须添加任何权限吗?

  1. 如果您需要图像位置库和相机,请参阅此链接

是否可以从图像中获取图像GPS位置坐标?

或者如果这适合你的话,我还有一个定制选项。

  1. 如果只需要相机图片图像时的位置。该图像由您的应用程序打开

使用等简单方法

File _image; 
final picker = ImagePicker();
Future getImage() async { 
final pickedFile = await picker.getImage(source: ImageSource.camera);
setState(() {
if (pickedFile != null) {
// your will take user location  at this time
_image = File(pickedFile.path); 
}
else { 
print('No image selected.');
}
}); 

这是我们用来添加GPS信息的:

final picker = ImagePicker();
picker.getImage(source: ImageSource.camera).then((pickedFile) async {
var myImagePath = coreNotifier.myCurrentPath.absolute.path;
final exif =
dd.FlutterExif.fromBytes(await pickedFile!.readAsBytes());
Position position = await _determinePosition();
await exif.setLatLong(position.latitude, position.longitude);
await exif.saveAttributes();
final modifiedImage = await exif.imageData;
var imageName = "imgName..";
File imageFile = new File("$myImagePath/$imageName.jpg");
imageFile.writeAsBytes(
List.from(modifiedImage!),
);
coreNotifier.reload();
});

也使用此软件包:

import 'package:geolocator/geolocator.dart';
import 'package:flutter_exif_plugin/flutter_exif_plugin.dart' as dd;

最新更新