2016-11-17 31 views
0

我問用戶點擊圖像從我的應用程序,然後該圖像獲取存儲在本地存儲,並從那裏到服務器,但問題是存儲的圖像是模糊。存儲圖像後,在我的應用程序商店模糊圖像相機點擊

public void saveImage(Bitmap bitmap, int i) 
{ 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.JPEG,100, bytes); 
    File directory = new File(Environment.getExternalStorageDirectory()+"my_directory"); 
    if(!directory.exists()) 
    { 
     directory.mkdirs(); 
    } 
    File f = new File(Environment.getExternalStorageDirectory()+"my_directory"); 
    try{ 
     f.createNewFile(); 
     //write the bytes in file 
     FileOutputStream fo = new FileOutputStream(f); 
     fo.write(bytes.toByteArray()); 
     fo.close(); 
    }catch(IOException ioe){ 
     ioe.printStackTrace(); 
    } 
} 

這是我用來保存圖像的代碼,這是生成位圖的OnActivityResult。

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 0) 
    { 
     if(data!=null) 
     { 
      Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
      iv_upload.setImageBitmap(thumbnail); 

      saveImage(thumbnail,(int)System.currentTimeMillis()); 
     } 
    } 

}

+0

請參閱此https://developer.android.com/training/camera/photobasics.html#TaskPath –

+0

您正在保存返回的縮略圖而不是全尺寸的圖像 –

+0

thumbnail給我位圖從哪裏我將獲得全尺寸圖像 – Akki

回答

0

有什麼理由在你的代碼進行壓縮圖像?

Android Camera應用程序在返回Intent中將照片編碼爲onActivityResult(),並將其作爲extras中的小數位圖在關鍵「data」下進行編碼。以下代碼檢索此圖像並將其顯示在ImageView中。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     mImageView.setImageBitmap(imageBitmap); 
    } 
} 

是否已進行了清單文件,這些變化,請檢查

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

我需要存儲圖像上傳圖像到服務器 – Akki

+0

如此壓縮它後,您已經檢索到 – garima

0

您在這裏compressiong原始圖片:

bitmap.compress(Bitmap.CompressFormat.JPEG,100, bytes); 

質量接受0 - 100

0 = MAX壓縮(適合小圖像的最低質量)

100 =最小二乘壓縮(MAX質量適於大圖像)

所以嘗試改變的100的值,並檢查質量。

+0

已嘗試更改值100相對於其他人提供更好的圖像 – Akki

+0

這可能是與您的設備相機問題。您需要檢查您的相機設置,或者需要使用不同的設備進行測試。 – Cool7

+0

用幾乎4-5個設備進行測試,但結果相同 – Akki

相關問題