現在、携帯電話を使用してバーコードをデコードするアプリケーションを開発しています。
バーコードを簡単にキャプチャするためにカメラ画面に線や四角を描く方法に問題があります。
それを行う最も簡単な方法は何ですか?
残念ながら、これは思ったほど簡単ではありません。携帯電話のカメラからのプレビュー画像がある場合、オーバーレイとしてレンダリングされることがよくあります。つまり、カメラのプレビュー イメージは実際にはアプリケーションのキャンバスのどの部分も形成せず、ピクセルを直接操作することはできません。電話は、アプリケーションの上にプレビューを描画するだけで、完全に制御できません。
画面に線を引くと、プレビュー画像の下に線が引かれます。
これを回避する方法はあまりきれいではありません。実際にカメラから画像をキャプチャする必要があります。残念ながら、これは JPEG または PNG ファイルをバイト バッファにキャプチャすることを意味します。次に、Image.createImage を使用してこの画像を読み込み、画面にレンダリングします。その上に安全に描画できます。
これには、恐ろしいフレームレートが発生するという望ましくない欠点もあります。キャプチャできるすべてのファイル形式を列挙し、それらすべてを試して、どれが最も高速かを確認することをお勧めします。