gpt4 book ai didi

Android 图像调整大小和保留 EXIF 数据(方向、旋转等)

转载 作者:IT王子 更新时间:2023-10-28 23:45:46 26 4
gpt4 key购买 nike

如果您的 Android 应用使用设备相机拍摄照片然后调整其大小(这对于减小上传大小非常非常常见),您可能没有意识到此调整大小操作 strips Exif 元数据。

这可能会导致问题,尤其是在相关设备依赖“方向”标签来正确垂直显示图像的情况下。

不同的 Android 设备以不同的方式处理相机/图像旋转 - 我值得信赖的旧 Nexus One 似乎总是在捕获后立即旋转图像,因此文件的原生内容在查看时总是“直立”的。

但是,其他设备(尤其是我测试中的三星手机)旋转图像文件的内容 - 相反,它们设置了 Exif '方向' 标签。每当图像稍后显示时,相关图像代码应检测方向“标签”的存在并适本地旋转图像。但是,如果您对图像进行了任何位图处理并将其保存到新文件中,那么所有的 Exif 数据都会丢失。

除了方向数据之外,您还可能会丢失其他有值(value)的元数据,例如品牌/型号等。

这让我困惑了几个星期(图像在手机图库中显示时显示为直立,但随后以错误的方向到达我的服务器并且没有明显的元数据)。我在这里添加这个 self 问题来帮助别人。这篇博文很有帮助:

Android re-size image without loosing EXIF information

最佳答案

据我所知,没有机制可以自动保存元数据,甚至快照任何存在并批量传输。

相反,您似乎必须明确检查特定属性并使用 ExifInterface 自己将它们复制到新图像文件中。

http://developer.android.com/reference/android/media/ExifInterface.html

比如:

ExifInterface oldExif = new ExifInterface(oldImagePath);
String exifOrientation = oldExif.getAttribute(ExifInterface.TAG_ORIENTATION);

if (exifOrientation != null) {
ExifInterface newExif = new ExifInterface(imagePath);
newExif.setAttribute(ExifInterface.TAG_ORIENTATION, exifOrientation);
newExif.saveAttributes();
}

关于Android 图像调整大小和保留 EXIF 数据(方向、旋转等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com