2015-04-26 141 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.然后将图片意图存储到'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的入图象目录?

我都以直接位图到一个OutputStream输入的权限进入我的清单

<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 我描述了如何拍照并将其保存到图片文件夹。 –

回答

0

使用bitmap.compress

例如:

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) { 

      } 
     } 
    } 
} 

注意,文件路径是目录名+例如/sdcard/iamges/1.jpg

相关问题