如何在 flutter 中检索 exif 方向值
How to retrieve the exif orientation value in flutter
我正在使用 Flutter 开发一个应用程序,我想检索我使用 image_picker 插件 select 编辑的图像的 exif 方向值。
当我 运行 下面的代码和 select 我事先旋转过的图像时,我得到的方向值为空,exif 数据为空地图。
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}"); // {}
我通过 google 驱动器将我与此代码一起使用的图像发送到我的 mac 书中以查看方向值,这就是我得到的:
我使用的是 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';
解释:给定图像的 path
如果需要旋转(即处于横向模式),它将 return
我也有你提到的 null orientation
问题,我用 width/height 自己解决了...
我知道这似乎很奇怪...希望有人能提供更好的解决方案。
我正在使用 Flutter 开发一个应用程序,我想检索我使用 image_picker 插件 select 编辑的图像的 exif 方向值。
当我 运行 下面的代码和 select 我事先旋转过的图像时,我得到的方向值为空,exif 数据为空地图。
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}"); // {}
我通过 google 驱动器将我与此代码一起使用的图像发送到我的 mac 书中以查看方向值,这就是我得到的:
我使用的是 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';
解释:给定图像的 path
如果需要旋转(即处于横向模式),它将 return
我也有你提到的 null orientation
问题,我用 width/height 自己解决了...
我知道这似乎很奇怪...希望有人能提供更好的解决方案。