在发送文件之前,手机上的预览看起来不错,但是一旦在服务器上收到并重新加载到移动设备上,便会旋转垂直图像.
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-垂直向服务器发送图像时,尽管移动设备上的预览效果不错,但图像仍会旋转所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)