日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

三星Android5.0系统以上 相册中选择相片后 图片旋转了90度问题

發布時間:2024/9/5 Android 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三星Android5.0系统以上 相册中选择相片后 图片旋转了90度问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個問題在實際應用開發中也是無意中碰到,下面給出代碼解決

其中avatar為頭像地址,path為在相冊中選擇完的相片地址

    int degree = ImageUtils.readPictureDegree(path);Bitmap bmpOk = ImageUtils.rotateToDegrees(BitmapUtils.getSampleBitmap(path, 800, 800).getBitmap(), degree);mHeadImageView.setImageBitmap(bmpOk);

下面是ImageUtils工具類中readPictureDegree方法,和rorateToDegress方法

/*** 圖片旋轉* @param tmpBitmap* @param degrees* @return*/public static Bitmap rotateToDegrees(Bitmap tmpBitmap, float degrees) {Matrix matrix = new Matrix();matrix.reset();matrix.setRotate(degrees);return tmpBitmap =Bitmap.createBitmap(tmpBitmap, 0, 0, tmpBitmap.getWidth(), tmpBitmap.getHeight(), matrix, true);}/*** 讀取照片exif信息中的旋轉角度* @param path 照片路徑* @return角度*/public static int readPictureDegree(String path) {int degree = 0;try {ExifInterface exifInterface = new ExifInterface(path);int orientation =exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_NORMAL);switch (orientation) {case ExifInterface.ORIENTATION_ROTATE_90:degree = 90;break;case ExifInterface.ORIENTATION_ROTATE_180:degree = 180;break;case ExifInterface.ORIENTATION_ROTATE_270:degree = 270;break;}} catch (IOException e) {e.printStackTrace();}return degree;}

?然后將旋轉后的bitmap保存到本地,將保存的地址賦值給avatar

try {avatar = BitmapUtils.saveImg(bmpOk,"head");} catch (Exception e) {e.printStackTrace();}

下面給出我的BitmapUtils工具類saveImg的方法

/*** 將bitmap作為圖片保存到本地并返回保存地址* @param b* @param name* @return* @throws Exception*/public static String saveImg(Bitmap b, String name) throws Exception {String path = BaseApplication.getBaseApplication().getBaseExternalCacheDir()+ File.separator + "temp/image/";File mediaFile = new File(path + File.separator + System.currentTimeMillis()+name + ".jpg");if (mediaFile.exists()) {mediaFile.delete();}if (!new File(path).exists()) {new File(path).mkdirs();}mediaFile.createNewFile();FileOutputStream fos = new FileOutputStream(mediaFile);b.compress(Bitmap.CompressFormat.PNG, 80, fos);fos.flush();fos.close();b.recycle();b = null;System.gc();return mediaFile.getPath();}

好了,現在你選擇照片后,控件顯示的圖片正常角度,最后拿到這個我們旋轉成正常圖片保存的地址后再上傳到你的服務器就OK了。

轉載于:https://www.cnblogs.com/yangqi0226/p/5192586.html

總結

以上是生活随笔為你收集整理的三星Android5.0系统以上 相册中选择相片后 图片旋转了90度问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。