這可能聽起來像一個奇怪的/愚蠢的問題。但是聽我說。Android拍照成功
Android應用是,至少在T-Mobile的G1,限制爲16 MB堆的。
而且它需要每像素來存儲的圖像的4個字節(以位圖形式):
public void onPictureTaken(byte[] _data, Camera _camera) {
Bitmap temp = BitmapFactory.decodeByteArray(_data, 0, _data.length);
}
所以1個圖像,在600萬像素的佔用堆24MB。 (提示內存溢出)。
現在我非常瞭解使用參數進行解碼的能力,可以有效地減小圖像的大小。我甚至有一種方法將它縮小到所需的大小。
但是在場景中,如果我想將相機用作高質量相機,情況如何!
我不知道如何讓這個圖像進入數據庫。只要我解碼,它錯誤。
注:我需要(?)將其轉換爲位圖,以便在存儲它之前旋轉它。
所以總結起來:
- 有限公司堆的16MB
- 圖片佔用堆24MB
- 沒有足夠的空間來採取和處理圖像
這並不解決問題,但我推薦它作爲其他人剛剛從一個位置加載圖像的起點: Displaying Bitmaps on android
這確實是實現您的目標的最明智的方式。理想情況下,你想做任何繁重的服務器端,因爲你的手機沒有太多的處理能力,特別是G1。 – mtmurdock
我實際上在HTC One X上測試,但由於應用程序堆大小的限制,無法執行操作。另外它還需要在OS 10上工作。感謝您的建議,明天將嘗試2號。看看3,它只會降低4個通道中的1個。我的相機是8百萬像素,所以仍然是24MB,加上反正使用的內存越少越好。 – Doomsknight
@idistic - 在縱向模式下正確預覽它我的一些android設置代碼,設置'mCamera.setDisplayOrientation(result)'。 AKa在預覽中看到的內容。它剛剛發生在我看來,這不是假設旋轉相機,事實上,我然後找到了適當的方法來旋轉攝像頭「參數」內的相機。 'mParameters.setRotation(90);'這樣我就不必創建一個位圖,因此可以直接存儲數據庫一個1MB的JPEG數組。儘管你自己有一些很好的選擇。如果你想添加一個數字4.這將是偉大的:) – Doomsknight