flutter - 如何在 flutter 中检索 exif 方向值

标签 flutter dart jpeg exif

我正在使用 Flutter 开发一个应用程序,我想检索我使用 image_picker 插件选择的图像的 exif 方向值。

当我运行下面的代码并选择一张我事先旋转过的图像时,我得到的方向值是空值,exif 数据是一个空 map 。

File file = await ImagePicker.pickImage(
  source: ImageSource.gallery,
);
img.Image decodedImage = img.decodeImage(file.readAsBytesSync());
print("decodedImage.exif.orientation ${decodedImage.exif.orientation}"); // null
print("decodedImage.exif.data ${decodedImage.exif.data}"); // {}

我通过谷歌驱动器将我与此代码一起使用的图像发送到我的 mac book 以查看方向值,这就是我得到的:

enter image description here

我正在使用最新版本的 image_picker 插件。如何在 Flutter 中检索图像的 exif 方向值?

最佳答案

我使用了这个函数:

  needRotation(String path) async {
    Map<String, IfdTag> data =
        await readExifFromBytes(await new File(path).readAsBytes());
    return data['EXIF ExifImageWidth'].values[0] >
        data['EXIF ExifImageLength'].values[0];
  }

使用 import 'package:exif/exif.dart';

解释:给定图像的路径,如果需要旋转(即处于横向模式),它将返回

我也遇到了你提到的 null orientation 问题,我自己使用宽度/高度来计算...

我知道这似乎很奇怪...希望有人能提供更好的解决方案。

关于flutter - 如何在 flutter 中检索 exif 方向值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57388773/

相关文章:

java - 显示 RTP MJPEG

flutter - Flutter:如何将JSON元素转换为列表?

dart - 检查列表是否包含 dart 中对象的属性

firebase - 使用Flutter可以从哪里获得SHA-1证书指纹? (使用flutter create --androidx ProjectName)

javascript - URL正则表达式由正则表达式好友传递,但Dart失败

linux - JPG(文档)到 PDF(linux 控制台)

php - 将 PHP/MySQL 页面转换为 .jpg 并将图像插入另一个域的 MySQL 字段?

Flutter - Android 原生平台集成

flutter - 抖动的边界生命周期

android - 如何使用 Flutter "saf"包进行文件操作(创建/写入/更新/删除文件)