Android-垂直向服务器发送图像时,尽管移动设备上的预览效果不错,但图像仍会旋转

Android-垂直向服务器发送图像时,尽管移动设备上的预览效果不错,但图像仍会旋转,第1张

概述在发送文件之前,手机上的预览看起来不错,但是一旦在服务器上收到并重新加载到移动设备上,便会旋转垂直图像.publicstaticFilesaveBitmapTemporarily(BitmapfinalBitmap,intextension,ExifInterfaceoldExif){Stringroot=Environment.getExternalStorageDirectory

在发送文件之前,手机上的预览看起来不错,但是一旦在服务器上收到并重新加载到移动设备上,便会旋转垂直图像.

public static file saveBitmapTemporarily(Bitmap finalBitmap, int extension, ExifInterface oldExif) {    String root = Environment.getExternalStorageDirectory().toString();    fileUtils.createFolder(new file(Environment.getExternalStorageDirectory() + BuildConfig.STORAGE_DIR));    file myDir = new file(root + BuildConfig.STORAGE_DIR + "/");    myDir.mkdirs();    String fname;    if (extension == IMAGE_FORMAT_JPG_JPEG) {        fname = "file-reduced.jpg";    } else {        fname = "file-reduced.png";    }    file file = new file(myDir, fname);    if (file.exists()) file.delete();    try {        fileOutputStream out = new fileOutputStream(file);        if (extension == IMAGE_FORMAT_JPG_JPEG) {            finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);        } else {            finalBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);        }        out.flush();        out.close();    } catch (Exception e) {        if (BuildConfig.DEBUG)            e.printstacktrace();    }    return file;}

解决方法:

欢迎使用Stack Overflow @kiketurry …在这里,您已完成解决此问题的工作.您应该将宽度和高度尺寸存储在照片的exif数据中,以便服务器知道如何调整其方向,但是只能在jpg中显示

if (extension == IMAGE_FORMAT_JPG_JPEG) {    ExifInterface oldExif = null;    try {        oldExif = new ExifInterface(file.getabsolutePath());        ExifInterface newExif;        newExif = new ExifInterface(file.getabsolutePath());        newExif.setAttribute("ImageLength", String.valueOf(finalBitmap.getHeight()));        newExif.setAttribute("ImageWIDth", String.valueOf(finalBitmap.getWIDth()));        if (oldExif != null) {            String exifOrIEntation = oldExif.getAttribute(ExifInterface.TAG_ORIENTATION);            if (exifOrIEntation != null) {                newExif.setAttribute(ExifInterface.TAG_ORIENTATION, exifOrIEntation);            }        }        newExif.saveAttributes();    } catch (IOException e) {        e.printstacktrace();    }}

希望对您有所帮助.

总结

以上是内存溢出为你收集整理的Android-垂直向服务器发送图像时,尽管移动设备上的预览效果不错,但图像仍会旋转全部内容,希望文章能够帮你解决Android-垂直向服务器发送图像时,尽管移动设备上的预览效果不错,但图像仍会旋转所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1091357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存