簡體   English   中英

如何在onActivityResult中確定相機意圖后的照片分辨率

[英]How to know photo resolution after camera intent in onActivityResult

問候語

我已經完成了相機意圖,傳遞了文件參數以獲取完整尺寸的圖像,並且我還具有縮放圖像並在UI中進行設置的功能。

但是,我想知道用戶拍攝照片的分辨率。 無論如何,是否知道用戶選擇的分辨率?

我想知道這是因為我的應用在具有高質量質量分辨率的較差的硬件設計中崩潰了。 任何2M像素以上的照片都會使舊手機崩潰。

我知道真正的解決方案是在整個應用程序中提高JAVA內存的性能。 但這將是一個快速修復,稍后我會再介紹。 另外,1.M像素的照片就足夠了。 只是清單的一部分,不需要一定的質量。

無論如何,有沒有知道相機使用的分辨率?

謝謝。

編輯:謝謝大家的回答,但我不得不承認,我疏忽了我的解釋。 我想要簡單獲得分辨率的另一個原因是,該應用程序還將URI路徑也轉換為內容路徑,因此,如果照片的質量太高而手機無法處理,則會導致崩潰。 我只想在分辨率過高時警告用戶,所以我怎么知道每部電話的每種合適分辨率,而不是我只捕捉到錯誤“ java.langOutOfMemory”,因此會警告用戶。 像這樣:

try {
 //here is my method to convert uri path to content
} catch (OutOfMemoryError outOfMemoryError) {
                            Toast toast = Toast.makeText(getApplicationContext(), "Please lower photo resolution", Toast.LENGTH_LONG);
                            toast.show();

                        }

您可以將結果轉換為位圖:

  Bitmap temp = BitmapFactory.decodeFile(data.getData().getPath());

那么您可以獲得這樣的分辨率:

  temp.getWidth();
  temp.getHeight();

或者您可以這樣做:

  BitmapFactory.Options temp = new BitmapFactory.Options();
  temp.inJustDecodeBounds = true;
  BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri), null, temp);

  int width = temp.outWidth;
  int height = temp.outHeight;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM