Skip to content

[image_picker] Missing exif tags in resized images #132827

@RobertOdrowaz

Description

@RobertOdrowaz

Is there an existing issue for this?

What package does this bug report belong to?

image_picker

What target platforms are you seeing this bug on?

Android

Have you already upgraded your packages?

Yes

Dependency versions

pubspec.lock
  image_picker:
    dependency: "direct main"
    description:
      name: image_picker
      sha256: "841837258e0b42c80946c43443054fc726f5e8aa84a97f363eb9ef0d45b33c14"
      url: "https://pub.dev"
    source: hosted
    version: "1.0.2"
  image_picker_android:
    dependency: transitive
    description:
      name: image_picker_android
      sha256: "8179b54039b50eee561676232304f487602e2950ffb3e8995ed9034d6505ca34"
      url: "https://pub.dev"
    source: hosted
    version: "0.8.7+4"
  image_picker_for_web:
    dependency: transitive
    description:
      name: image_picker_for_web
      sha256: "8b6c160cdbe572199103a091c783685b236110e4a0fd7a4947f32ff5b7da8765"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.0"
  image_picker_ios:
    dependency: transitive
    description:
      name: image_picker_ios
      sha256: b3e2f21feb28b24dd73a35d7ad6e83f568337c70afab5eabac876e23803f264b
      url: "https://pub.dev"
    source: hosted
    version: "0.8.8"
  image_picker_linux:
    dependency: transitive
    description:
      name: image_picker_linux
      sha256: "02cbc21fe1706b97942b575966e5fbbeaac535e76deef70d3a242e4afb857831"
      url: "https://pub.dev"
    source: hosted
    version: "0.2.1"
  image_picker_macos:
    dependency: transitive
    description:
      name: image_picker_macos
      sha256: cee2aa86c56780c13af2c77b5f2f72973464db204569e1ba2dd744459a065af4
      url: "https://pub.dev"
    source: hosted
    version: "0.2.1"
  image_picker_platform_interface:
    dependency: transitive
    description:
      name: image_picker_platform_interface
      sha256: c1134543ae2187e85299996d21c526b2f403854994026d575ae4cf30d7bb2a32
      url: "https://pub.dev"
    source: hosted
    version: "2.9.0"
  image_picker_windows:
    dependency: transitive
    description:
      name: image_picker_windows
      sha256: c3066601ea42113922232c7b7b3330a2d86f029f685bba99d82c30e799914952
      url: "https://pub.dev"
    source: hosted
    version: "0.2.1"

Steps to reproduce

  1. Call pickImage with maxWidth and/or maxHeight arguments
  2. Select photo bigger than specified dimensions
  3. Check received photo exif data

Expected results

Resided photo contains DateTimeOriginal tag

Actual results

Missing DateTimeOriginal tag

Code sample

Code sample
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:native_exif/native_exif.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Column(
            children: [
              ElevatedButton(
                child: Text('Pick image resized (100px)'),
                onPressed: () async {
                  final image = await ImagePicker().pickImage(
                    source: ImageSource.gallery,
                    maxHeight: 100,
                    maxWidth: 100,
                  );

                  final exif = await Exif.fromPath(image!.path);

                  print(
                      'resized original date: ${await exif.getOriginalDate()}');
                },
              ),
              ElevatedButton(
                child: const Text('Pick image'),
                onPressed: () async {
                  final image = await ImagePicker()
                      .pickImage(source: ImageSource.gallery);

                  final exif = await Exif.fromPath(image!.path);

                  print(
                      'non-resized original date: ${await exif.getOriginalDate()}');
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Screenshots or Videos

Screenshots / Video demonstration image

Logs

Logs
[Paste your logs here]

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.7.12, on macOS 13.0.1 22A400 darwin-arm64, locale en-PL)
    • Flutter version 3.7.12 on channel stable at /Users/robert/fvm/versions/3.7.12
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (4 months ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/robert/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.70.0

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 12 (API 31) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 13.0.1 22A400 darwin-arm64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 115.0.5790.170

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listfound in release: 3.13Found to occur in 3.13found in release: 3.14Found to occur in 3.14has reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: image_pickerThe Image Picker plugin.packageflutter/packages repository. See also p: labels.platform-androidAndroid applications specificallyteam-androidOwned by Android platform teamtriaged-androidTriaged by Android platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions