Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android圖片處理

Android圖片處理

編輯:關於Android編程

Android圖片處理整理總結:

1:Android拍照的時候我們會遇到一些狀態,比如用三星手機拍照的話,有可能在拍完照片後,照片會自動旋轉,下面這個方面是把旋轉的照片還原回來:

 

Bitmap bitmap = BitmapFactory.decodeFile(Const.ACT_CREATE_PIC_PATH.concat(photoName));
int angle= imageUtils.getExifOrientation(Const.ACT_CREATE_PIC_PATH.concat(photoName));
if(angle!=0){  //如果照片出現了 旋轉 那麼 就更改旋轉度數
    Matrix matrix = new Matrix();
    matrix.postRotate(angle);
    bitmap = Bitmap.createBitmap(bitmap,0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}

 

 

2:如果Android應用需要處理和上傳圖片,那圖片的大小是個大問題,因為主流的Android手機拍出的照片至少要3M以上,如果你的圖片需要濾鏡或者上傳,那就會消耗很多時間。其實我們大多數時候是不需要質量那麼高的圖片的,圖片分辨率高的時候只有在查看大圖的時候有作用,在手機屏幕上查看圖片不需要質量那麼高的圖片。所以,如果不需要裁剪的時候,可以自己等比例的減小圖片的分辨率。示例代碼:

 

public String scaleDown(String path,Context context)
{
    Bitmap orignalB=BitmapFactory.decodeFile(path);
    float ratio = Math.min((float) 974 / orignalB.getWidth(),(float) 974 / orignalB.getHeight());
    int width = Math.round((float) ratio * orignalB.getWidth());
    int height = Math.round((float) ratio * orignalB.getHeight());

Bitmap newB = Bitmap.createScaledBitmap(orignalB,width,height, true);
String imgName=path.substring(path.lastIndexOf("/")+1,path.length()-1);
String userId= UserHelper.getUserId(context);
String newpath=createDirectoryAndSaveFile(newB,userId+System.currentTimeMillis()+".jpg");
orignalB.recycle();
newB.recycle();
    return newpath;
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved