2013-04-07 96 views
1

我有這個應用程序拍攝一張照片並將其存儲到SD卡,但是我認爲每張照片都非常壓縮並且質量很低。我壓縮它的全部質量,所以我不知道爲什麼它這樣做。有什麼建議麼?這裏是代碼:拍照並保存到SD而不損失質量

protected void takePhoto() 
{ 
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(intent, 0); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    super.onActivityResult(requestCode, resultCode, data); 
    currPhoto = (ImageView) findViewById(R.id.imageView1); 

    if (requestCode== 0 && resultCode == Activity.RESULT_OK){ 
     Bitmap x = (Bitmap) data.getExtras().get("data"); 
     currPhoto.setImageBitmap(x); 
     ContentValues values = new ContentValues(); 
     values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
     Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); 
     OutputStream outstream; 
     try { 
      outstream = getContentResolver().openOutputStream(uri); 

     x.compress(Bitmap.CompressFormat.JPEG, 90, outstream); 
     outstream.close(); 
     } catch (FileNotFoundException e) { 
      // 
     }catch (IOException e){ 
      // 
     } 
    } 
} 

編輯:事實上,它似乎只是將縮略圖保存到SD。

example

回答

1

documentation

公共靜態最後絃樂ACTION_IMAGE_CAPTURE

添加在API level 3標準意圖的行動,可以發送到具有 相機應用拍攝的圖像,並將其返回。

調用者可能會傳遞一個額外的EXTRA_OUTPUT來控制此圖像 將被寫入的位置。如果EXTRA_OUTPUT不存在,則會在額外字段中將尺寸較小的圖像作爲位圖對象返回。這是 對於只需要小圖像的應用程序很有用。 如果存在 EXTRA_OUTPUT,則全尺寸圖像將被寫入 的Uri值EXTRA_OUTPUT

+0

真棒謝謝你,這幫助我理解它。對於有同樣問題的任何人[此鏈接](http://stackoverflow.com/questions/9976817/take-picture-with-camera-intent-and-save-to-file)是我需要的代碼。 – RyPope 2013-04-07 01:40:25