当前位置: 首页 > 知识库问答 >
问题:

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

唐焕
2023-03-14

这可能会导致问题,特别是如果有问题的设备依赖于“方向”标签来正确地垂直显示图像。

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

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

Android在不丢失EXIF信息的情况下重新调整图像大小

共有1个答案

东方化
2023-03-14

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

相反,您似乎必须显式地检查特定属性,并使用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();
}
 类似资料:
  • 问题内容: 在Django中上传图片后,如何轻松调整其大小?我正在使用Django 1.0.2,并且已经安装了PIL。 我当时正在考虑重写Model的save()方法以调整其大小,但是我真的不知道如何开始并覆盖它。 有人可以指出我正确的方向吗?谢谢 :-) @GuðmundurH:这将不起作用,因为django-stdimage软件包在Windows上不起作用 问题答案: 在这种方法中,你可以将块

  • 问题内容: 当我尝试使用PIL调整图像大小(缩略图)时,exif数据丢失。 我该怎么做才能将exif数据保留在缩略图中?当我搜索相同的内容时,获得了一些链接,但似乎没有任何作用。 原始图像具有exif数据,但图像im(512_a.JPEG)没有。 问题答案: import pyexiv2 from PIL import Image 现在我使用(Patch Image Inspector)打开图像,

  • 当使用sharp image resize库https://github.com/lovell/sharp for Node.js时,图像将被旋转。 我没有写.rotate()的代码,那么为什么要旋转它,我怎样才能阻止它旋转呢? 我使用的是AWS提供的无服务器图像大小调整示例:https://github.com/awslabs/serverless-image-resizing。如果缩略图不存在

  • 我正在构建一个应用程序,它依赖于显示从相机拍摄的许多位图图像。我希望所有图像都以90度(纵向)的方向显示,我知道如何使用每个图像提供的EXIF信息来实现这一点。在拍摄图像后立即旋转图像的位图以满足我的需要,然后将其发送到我的服务器,这对我来说是一个更好的主意,还是应该在不旋转图像的情况下将图像发送到我的服务器,然后每当我下拉图像时,使用图像附带的EXIF旋转来旋转我正在显示的图像视图?我需要一个高

  • 问题内容: 佳能单反相机似乎以横向保存照片,并用于旋转。 问题: 如何使用exif方向数据使用imagemagick将图像重新保存到预期的方向,从而不再需要exif数据以正确的方向显示? 问题答案: 使用ImageMagick的自动定向选项来执行此操作。 或用原地做

  • 问题内容: 我需要使用Python调整jpg图像的大小,而又不丢失原始图像的EXIF数据(有关拍摄日期,相机型号等的元数据)。所有有关python和图像的google搜索都指向我当前正在使用的PIL库,但似乎无法保留元数据。我到目前为止(使用PIL)的代码是这样的: 有任何想法吗?还是我可能正在使用的其他库? 问题答案: http://www.emilas.com/jpeg/