Skip to content

image_picker doesn't provide metadata for the image selected on IOS #31751

@Quanalogy

Description

@Quanalogy

Hi,

It seems like the image picker for ios does not provide the correct image metadata when picking an image. When I use the plugin on android, it is possible to read the metadata from the image, providing latitude and longitude coordinates of the image. When using the same code and the same image on IOS, the image is displayed correctly but no metadata or sparse meta data (5 elements of around 50) is returned.

The following code is used for reproducing this:

import 'package:exif/exif.dart';
import 'package:image_picker/image_picker.dart';

...

var userImage = await ImagePicker.pickImage(source: ImageSource.gallery);
var bytes = await userImage.readAsBytes();
var tags = await readExifFromBytes(bytes);
    
tags.forEach((key, value) => print("$key : $value"));

which on ios provide:

2019-04-28 18:38:56.034770+0200 Runner[56038:217320] flutter: Image Orientation : Horizontal (normal)
2019-04-28 18:38:56.034948+0200 Runner[56038:217320] flutter: Image ExifOffset : 38
2019-04-28 18:38:56.035105+0200 Runner[56038:217320] flutter: EXIF ColorSpace : sRGB
2019-04-28 18:38:56.035271+0200 Runner[56038:217320] flutter: EXIF ExifImageWidth : 4608
2019-04-28 18:38:56.035462+0200 Runner[56038:217320] flutter: EXIF ExifImageLength : 3456

while on android provide the following keys (along with many others):

static const String latKey = "GPS GPSLatitude";
static const String lngKey = "GPS GPSLongitude";
static const String latRefKey = "GPS GPSLatitudeRef";
static const String lngRefKey = "GPS GPSLongitudeRef";

The image used:

IMG_20190419_150626

The image have been tested both on ios simulator (XR) and a physical phone, 6s I think, with the same result. The image have been validated both in photos app on IOS device, where the location can be displayed (by displaying the photo in photos app and swiping from buttom to top, showing "places", which displays where the image was taken), and on website: http://metapicz.com/#landing

So it seems to me that the image provided is stripped for its metadata, or at least some of it. Hope you can help resolving this issue.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions