2013-10-20 10 views
5

完全な解像度の画像データを取得したい場合は、画像処理を行うことができます。Androidカメラでフル解像度と非圧縮の画像データを取得する方法

私の知る限り、アンドロイドのapi takePicture(shutter、raw、jpg)は何かできることがあります。しかし、圧縮されたJPEGデータではなく、圧縮されていない画像データです。私は読んだいくつかの投稿に応じて仕事をします。

私はapi onPreviewFrameも見つけました。このカメラからのオリジナル画像i caputureは1952 * 3264の解像度ですが、これは1280 * 720(use setPreviewSize)です。

また、Intent.putExtra(MediaStore.EXTRA_OUTPUT、uri)は助けになるかもしれませんが、uriのファイルは圧縮された形式のjpegファイルである必要があります。

しかし、フルサイズ(キャプチャと同じ)と圧縮されていない(JPEGではない)画像データを取得するにはどうしてですか?

答えて

4

takePicture()のドキュメントでは、生データを要求できることが明らかですが、コールバックはオプションです。現在、ほとんどのデバイスは生のコールバックをサポートしていません。これは驚くべきことではありません。現代のカメラはハードウェアでJPEG圧縮を実行し、カメラとアプリケーションプロセッサ間のメモリバスは24メガバイトの生データを十分に速く処理できません(控えめな8メガピクセルのカメラ用)。

takePicture()の代わりにプレビューコールバックを使用することは避けてください。同じ解像度であっても、静止画像の画質は良くなります。プレビュー画像には、不正確なオートフォーカス、安定化、露出、さらにはホワイトバランスがあります。

+0

ありがとうございました。ほとんどの端末でアンドロイドのカメラAPIを使用して非圧縮の画像データを取得できないということですか? –

+0

*ほとんどのデバイスでアンドロイドカメラAPIを使用して非圧縮の画像データを取得することはできませんか?*正確です。 –

+0

2016年にこれは本当ですか? –

関連する問題