【发布时间】:2017-09-16 11:36:38
【问题描述】:
我正在使用以下代码将图像上传到服务器,它已成功上传,但图像方向更改为 -90。
我不明白如何解决这个问题。我在 SD 卡中的图像方向正确,但我不知道为什么这张图像会改变方向。
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(image_upload);
Log.e("strImagePath.... before uploading", al_image_paths.get(i));
multipartContent.addPart("image", new FileBody(new File(al_image_paths.get(i))));
multipartContent.addPart("sellleadid", new StringBody("2234"));
multipartContent.addPart("action", new StringBody("Send Used Car Images"));
multipartContent.addPart("app_id", new StringBody("1"));
totalSize = multipartContent.getContentLength();
httpPost.setEntity(multipartContent);
HttpResponse response = httpClient.execute(httpPost, localContext);
String serverResponse = EntityUtils.toString(response.getEntity());
Log.e("serverResponse image", "<> " + serverResponse);
【问题讨论】:
-
您的问题是您的图像数据未旋转 - 图像具有指示旋转的 EXIF 方向数据集。有些查看者在显示图像时会考虑 EXIF 方向,有些则不会。为了节省处理时间和内存,大多数移动设备总是以一个特定的(通常是横向)方向写入图像数据,如果您以不同的方式握住相机,只需设置一小块 EXIF 元数据来表明这一点,而不是而不是旋转数据本身。
-
@MattGibson 我认为您可以将其发布为答案
-
我的图片路径在我的手机中显示了正确的图片,那么我怎样才能在没有任何倾斜的情况下将相同的图片上传到服务器。
-
@ntv1000 这可能是原因,但实际上并不能解决问题。我会把它留给其他人,虽然我想已经有一个关于“如何旋转这个图像以匹配它的 EXIF”的现有回答问题......
-
在手机中是正确的。但是在传输到服务器时它会倾斜。因此,您需要将手机中的图像倾斜并传输到服务器。请参阅我的答案以获取代码。
标签: android