2011-02-10 63 views
3

我想用Android相機捕捉圖像,但因爲圖像可能包含敏感數據,我不希望將圖像保存到手機或SD卡上。相反,我想要一個base64字符串(壓縮),它將立即發送到服務器如何在不將文件保存到手機/ SD卡的情況下捕獲Android相機圖像?

在PhoneGap中,似乎文件自動保存到各個位置。 原生我從來沒有能夠得到圖像流 - 在onJpegPictureTaken()字節[]參數始終爲空。

任何人都可以提出一種方法嗎?

回答

1

請參閱Camera.onPreviewFrame()和YuvImage.compresstoJpeg(),以便能夠獲取可以轉換爲位圖的字節數組。

請注意,YuvImage.compressToJpeg()僅在SDK 8或更高版本中可用,我認爲。對於早期版本,您需要實現您自己的YUV解碼器。有幾個例子或者,我可以給你一個例子。

這兩種方法將允許您在內存中獲取相機圖片,並且永遠不會將其保存到SD。請注意,大多數相機預覽尺寸的位圖會快速消化內存,並且您需要非常小心地回收位圖,並且可能還需要稍微縮小它們以適應它們,並且仍然適合本機堆限制在大多數設備上。

祝你好運!

相關問題