2012-03-10 2 views
1

SD 카드에 이미지를 저장하는 데 문제가 있습니다. sd 카드에서 파일을 볼 수 있지만 파일이 비어 있습니다 (크기 0). 나는 전화 메모리에 저장하려고했는데 제대로 작동합니다. 여기 내 코드가있다.SD 카드에 파일을 저장하고 파일 크기를 씁니다.

Imagewritter { 

     public static boolean writeAsJPG(Context context, Bitmap bitmap, 
    String filename) { 
     filename = filename + ".jpg"; 
     File path = Environment.getExternalStorageDirectory(); 

    File f = new File(path, filename); 
    FileOutputStream fos = null; 

    try { 
     fos = new FileOutputStream(f); 
    } catch (FileNotFoundException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    try { 
     fos = context.openFileOutput(filename, Context.MODE_WORLD_READABLE); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.d(TAG, "file not found"); 
     return false; 
    } 

    bitmap.compress(CompressFormat.JPEG, quality, fos); 
    try { 
     fos.flush(); 
     fos.close(); 
    } catch (IOException e) { 
     Log.d(TAG, "error closing"); 
     e.printStackTrace(); 
    } 
    } 

여기서 비트 맵의 ​​출처는 코드입니다.

DrawingView = (drawing) findViewById(R.id.drawing_view); 
    drawingBitmap = (Bitmap) DrawingView.getBitmap(); 
    String idName = timeStampText; 
    //save Image as JPG 
    ImageWritter.writeAsJPG(getApplicationContext(), drawingBitmap, idName); 
+0

실제로 비트 맵 변수가 설정된 코드를 게시하십시오. 또한 새로운 FileOutputStream을 할당하지 마십시오. context.openFileOutput 호출로 인해 전체 코드 블록이 낭비됩니다. 그 덕분에 –

+0

. 비트 맵의 ​​위치가 – madz

+0

인 코드를 추가하겠습니다. 내 코드가 중복되었습니다. 나는 context.openFileOutput을 제거했다. 고마워요. – madz

답변

0

유일한 문제는 여기에 파일을 쓰는 데 두 줄이 있다는 것입니다. FileOutputStream 및 OpenFileOutput 사용하기. 이 라인들을 제거하면 괜찮을거야.

try { 
     fos = context.openFileOutput(filename, Context.MODE_WORLD_READABLE); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.d(TAG, "file not found"); 
     return false; 
    } 
2

나는 당신이 공 크기의 바이트 배열을 받고 생각 .. u는 그 바이트의 배열의 크기를 확인 & 바이트 배열에서 이미지를 가져 매니페스트 파일

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

감사하지만 이미이 권한을 추가했습니다. – madz

0

이러한 권한을 추가해야합니다 생각합니다. ....

+0

나는 내부 메모리에 이미지를 저장할 때 그렇게 생각하지 않는다. 그것은 잘 작동합니다. 그 크기가 0이되지 않습니다. – madz

관련 문제