2014-03-19 3 views
0

이미지 갤러리에서 파일을 가져 와서 업로드하려고합니다.안드로이드 - runnig bitmap.compress, 항상 FileNotFoundException에 들어가기

하지만 업로드 프로세스 전에 이미지 파일을 압축하고 싶습니다.

  if (resultCode == RESULT_OK) { 
      Uri selectedImageUri = data.getData(); 
      if (requestCode == SELECT_FILE1) 
      { 
       selectedPath1 = getPath(selectedImageUri); 
      } 
      } 

그런 다음 나는를 압축하는 다음 코드를 사용하고 있습니다 -

그래서이 그림은 내가 전역 변수 (문자열 selectedPath1)에 파일 경로를 저장하고있어, 선택되어있는 코드 이미지 - I 코드를 runing에있을 때

try { 
     Log.d("MAIN", "1"); 
     compressedPictureFile = new File(selectedPath1); 
     Log.d("MAIN", "2"); 
     Bitmap bitmap = BitmapFactory.decodeFile(selectedPath1); 
     Log.d("MAIN", "3"); 
     FileOutputStream fOut = new FileOutputStream(compressedPictureFile); 
     Log.d("MAIN", "4"); 
     boolean compressed = bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fOut); 
     Log.d("MAIN", "E5"); 

     if (compressed){ 
      Log.d("MAIN", "E6"); 
     }else{ 
      Log.d("MAIN", "E7"); 
     } 
     Log.d("MAIN", "E8"); 
     fOut.flush(); 
     fOut.close(); 

    } catch (FileNotFoundException e1) { 
     Log.d("MAIN", "E1"); 
     e1.printStackTrace(); 
    } catch (IOException e1) { 
     Log.d("MAIN", "E2"); 
     e1.printStackTrace(); 
    } 

는 I 그것을 통과하는 로그 캣에 볼 [Log.d ("MAIN를", "3")] 광고하고 그것을 나타내는 - [로그인 .d ("MAIN", "E1");].

문제가 다음 줄에 있음을 의미 -

FileOutputStream fOut = new FileOutputStream(compressedPictureFile); 

는 그래서 내가 잘못 여기서 뭐하는 거지? 어떻게 해결할 수 있습니까? 당신은 어떤 파일이 코드 줄을 추가하려고 만들어지지 않습니다

답변

2

도움이 모든 종류의

감사 파일 경로는 SD 카드는 다음이 권한을 추가 너무 경우

compressedPictureFile = new File(selectedPath1); 
    if (!compressedPictureFile.exists()) { 
     compressedPictureFile.createNewFile(); 
    } 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />