gpt4 book ai didi

android - 在 Android 中从服务器下载的图像出现 90 度倾斜?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:41 25 4
gpt4 key购买 nike

开发一个应用程序,我们在其中捕获图像并通过服务器上传。应用程序在 Android 和 I Phone 中。当我们从 Android 发布图片时,它们的数量以千字节为单位,但当我们从 I Phone 发布图片时,它们的大小为 MB。

当我们从 IPHONE 5 发布的带有 URL 的图像在浏览器上显示时,它们看起来很好,但当我们在 Android 设备上下载该图像并在 ImageView 中显示时,它们看起来向左侧倾斜 90 度.

在 Android 或 I Phone 中下载图像后,我没有使用任何旋转代码。

在 I Phone 中,图像显示正常。

从 Android 捕获的图像也可以直接看到。从 I Phone 捕获的低分辨率图像也可以直接在 Android 中看到。

从安卓上传的图片:

https://s3.amazonaws.com/WeddingApp/Weddingimage/933_6_stan.jpg

从I Phone上传的图片:

https://s3.amazonaws.com/WeddingApp/Weddingimage/937_6_stan.jpg


public static boolean downloadFile(final String fileURL,File directory,Context CONTEXT){
try{
URL url = new URL(fileURL);

URLConnection ucon = url.openConnection();
ucon.setReadTimeout(35000);
ucon.setConnectTimeout(10000);

InputStream is = ucon.getInputStream();
BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);

File file = directory;

if (file.exists())
{
file.delete();
}
file.createNewFile();

FileOutputStream outStream = new FileOutputStream(file);
byte[] buff = new byte[5 * 1024];

int len;
while ((len = inStream.read(buff)) != -1)
{
outStream.write(buff, 0, len);
}

outStream.flush();
outStream.close();
inStream.close();

}
catch (IOException e){ //IF SDCARD NOT EXIST THEN PASS RESPONSE TRUE`
e.printStackTrace();
return false;
}catch(Exception e){
e.printStackTrace();
return false;
}

return true;
}

请给我建议。

最佳答案

这是因为 iPhone 愚蠢的新相机实现。我在下面的研究中发现(来源如下):

1. iPhone 相机对“向上”方向的解释与我们所知的实际“向上”方向旋转了 90 度。你我所说的“上”,是iphone的“左”或“右”。相机的方向已更改。这样做是为了支持使用音量按钮拍照。

2. 但是,意识到其他设备和相机具有正常 方向,以便这些设备和浏览器正确显示图像,iOS 添加了EXIF数据到上传的图像。这是在图片上传时添加的。如链接中所述,EXIF 是一种元数据,其中包含有关图像实际外观 的所有信息。

3. 下载图像的目标平台应该读取 EXIF 数据,然后显示 正确图片。因此,如果目标平台读取 EXIF,它将意识到接收到的图像旋转了 90 度,并且它应该依赖 EXIF 数据,而不是接收到的内容。这就是 iPhone 相机应用程序可以正确显示图像的原因。

4 然而,并不是每个人都阅读 EXIF。识别 EXIF 的应用程序和浏览器会读取图像的 EXIF 数据,并正确显示它。但是那些不了解 EXIF 的人,不要读取该数据,而是显示接收到的图像 --> 90 度旋转

5 人们已经解决了这个问题,方法是在拍照前将 iPhone 旋转 90 度(以便在拍照前相机朝向正确)

资源:

1. Source 1

2. Source 2

其他有同样问题的:

1. SO Post 1

2. SO Post 2

关于android - 在 Android 中从服务器下载的图像出现 90 度倾斜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20786088/

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