2015-04-26 3 views
0

Я пытаюсь сохранить растровое изображение в моем каталоге, но у вас мало проблем.Android: Сохранение изображения в каталог

Что мои приложения делает:

1.Opens приложение встроенные камеры с помощью Intent.

public void openCamera() { 
     Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     File file = new File(Environment.getExternalStorageDirectory()+ File.separator + "image.jpg"); 
     takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 

2.It затем сохраняет изображение намерения в «REQUEST_IMAGE_CAPTURE» и сохраняет изображение в временную директорию.

startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 

3.Which затем преобразуется в растровое изображение, и загружается из каталога TMP в целях изображения

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
     //Check that request code matches ours: 
     if (requestCode == REQUEST_IMAGE_CAPTURE){ 
      //Get our saved file into a bitmap object: 
      File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg"); 
      Bitmap image = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700); 
      imageView.setImageBitmap(image); 
     } 
    } 

Теперь, как я сохранить растровое изображение, которое в ImageView в каталог изображения?

Я ввожу разрешения на мой манифест

<uses-feature android:name="android.hardware.camera" 
    android:required="true" /> 
... 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
... 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
+0

Пожалуйста, попробуйте эту ссылку: http://stackoverflow.com/questions/29795796/android-onactivityresult-from-mediastore-action-image-capture-does-not-get-dat/29796601#29796601 I описал, как сделать снимок и сохранить его в папке «Изображения». –

ответ

0

использование bitmap.compress для того, чтобы направить растровое изображение в OutputStream.

, например:

FileOutputStream fo = new FileOutputStream(filename); 
bmp.compress(Bitmap.CompressFormat.PNG, 100, fo); // bmp is your Bitmap 
0
private void saveImage(Bitmap bmp, String filePath){ 

    File file = new File(filePath); 
    FileOutputStream fo = null; 
    try { 
     boolean result = file.createNewFile(); // true if created, false if exists or failed 
     fo = new FileOutputStream(file); 
     bmp.compress(Bitmap.CompressFormat.JPEG, IMAGE_QUALITY_PERCENT, fo); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (fo != null) { 
      try { 
       fo.flush(); 
       fo.close(); 
      } catch (Exception ignored) { 

      } 
     } 
    } 
} 

Обратите внимание, что это Filepath в каталог + имя файла, например, /sdcard/iamges/1.jpg

Смежные вопросы