2012-01-28 2 views
3

私はいつもプレビューと最終的な出力が決してつながっていないという印象を受けてきました。プレビューを任意の次元に設定することができ、最終的なJPGはパラメータで設定された特定の解像度になりますが、画像データがバイト[ ]がjpgコールバックにあるのは、私がプレビューを設定する次元に応じて異なります。カメラのプレビューと最終的な画像出力はどのように接続されていますか?

プレビューが最終的なJPGで実際にどのような関係になっているかを誰かに教えてもらえますか? (または上記の関係に関する文書を私に指摘してください)。

TIA

[編集]ラヴィの答えを1として が、これは同様に私の前提だった、しかし、私は彼らが、実際には、直接証拠に基づいて接続されていると推測するが、何の選択肢を見ていません。私は必要に応じてコードを投稿します(しかし、それがたくさんあります)が、私がやっていることはここにあります。

私はユーザーが自分の写真を撮るプレビュー画面を持っています。その後、(jpgコールバックビットマップデータから)キャプチャされた画像を後続の描画ビューに表示し、写真上の図形をトレースすることができます。次に、ポリゴンのポイントを元の画像からそのシェイプをカットするクラスに渡し、カット画像を戻します。

しかし、プレビューをどのように表示するかによっては、存在しない最終イメージのピクセルにアクセスしようとすると、ポリゴン切断クラスが配列の範囲外のインデックスでクラッシュします。このエフェクトは、プレビュービューの寸法の形状を変更することによって排他的に生成されます。私はコード内の何も変更していませんが、私のプレビュービューを誤って整形するだけで、このエラーを100%再現できます。

私はプレビューのデータでは決して操作していないので、プレビューとファイナルが何らかの形で直接接続されている以外の説明は表示されません。私はSurfaceViewに表示してから排他的にユーザーが写真を撮った後のJPGコールバックからのデータ

答えて

1

プレビュー解像度とキャプチャされる最終画像には関係がありません。

これらは完全に独立しています(少なくとも静止画キャプチャの場合)。プレビュー解像度とアスペクト比は、とにかく最終的な画像解像度とアスペクト比とは無関係です。私が書かれているカメラアプリケーションで

、プレビューは常にVGAですが、私はキャプチャ画像は(デバイスの能力に応じて)5MからVGAに変わる

おそらく、あなたは状況を説明することができれば、それはより多くのだろう役に立った

+0

ravi追加の詳細については、私の編集を参照してください... –

+0

@ Dr.Dredelこれは、プレビューよりもスケーリングファクターと関係があると思います。最初に座標をデバイス原点からイメージ原点に変換し、正しい倍率を適用して元のサイズのイメージにマッピングする必要があります。 – bluefalcon

1

私たちは現在、カメラアプリケーションを開発しており、非常に似通った問題に直面しています。ここでは、4:3の画像をキャプチャしながら、16:9のプレビューを表示したいと考えています。ほとんどの端末で問題なく動作しますが、一部の端末(Galaxy Nexus、LG Optimus 3Dなど)では、出力カメラの画像は選択したプレビューによって異なります。我々の場合、プレビュー比が画像比と異なる場合、そのデバイス上の先行する画像はゆがめられる。

プレビュー解像度を画像をキャプチャする直前の解像度に変更することで、この問題を解決しようとしました。しかし、これは一部のデバイスでは機能せず、キャプチャの終了後にプレビューを再開する際にエラーが発生します。 SurfaceViewをフルスクリーン幅と「全画面表示」 - 高さに拡大して、4:3プレビューから16:9プレビューを作成することで、この問題を解決しようとしました。しかし、これはうまくいきません。なぜなら、SurfaceViewsはスクリーン高さを上回ることはできないからです。

したがって、いくつかのデバイスに接続されており、私たちは本当に知りたい、どのように修正/回避するかを知りたい。

関連する問題