質問

Nokiaのハイエンド携帯電話(N95)で画像をキャプチャしようとしています。携帯電話の内部カメラは非常に優れています(4メガピクセル)が、j2meでは最大1360x1020の画像しか出力できないようです。私は主にこの例から引用しました http://developers.sun.com/mobility/midp / articles / picture /

私がやったことは、640x480から始め、失敗するまで幅と高さをそれぞれ80と60ずつ増やしました。コード行は次のとおりです。

jpg = mVideoControl.getSnapshot(" encoding = jpeg& quality = 100& width =" + width +"& height =" + height);

2つの問題は次のとおりです。  1. 1360x1020より大きい画像を取得すると、電話は例外をスローします。  2.高解像度の画像は、小さな画像の平滑化されたバージョンのように見えます。例えば。 640x480の画像を撮影してphotoshopで増やすと、これと1360x1020と思われる画像の違いがわかりません。

これは電話のj2meの制限ですか?もしそうなら、j2meアプリケーション内からより高い解像度を取得する方法、および/または別のアプリケーション内からネイティブカメラにアクセスする方法を誰か知っていますか?

役に立ちましたか?

解決

この説明Nokiaフォーラムのが役立ちます。

"キャプチャできる最大画像サイズは、選択した画像形式、エンコードオプション、利用可能な空きヒープメモリに依存するということです。

and

"したがって、少なくとも大きな画像(1mpixより大きい)はJPEG画像として、共通の画像サイズ(2mpixなどの場合は1600x1200など)でキャプチャすることを強くお勧めします。サポートされる一般的な画像サイズは、製品とプラットフォームのバージョンに依存します。"

だから私はあなたがいくつかの試みを取ることをお勧めします 1. 1600x1200、1024x768、およびN95ガイドで言及されている画像解像度 2. BMPおよびPNGも同様。

とにかく、以前の経験(古い可能性があります)に基づくと、j2meの実装にはバグがたくさんあるため、問題に対する有効な解決策がないかもしれません。

他のヒント

カメラの解像度はネイティブです: 2582 x 1944そこにキャプチャしてみて、それがどうなるかを確認してください。

この場所: http://developers.sun.com/mobility/midp/articles/ picture / index.html

使用目的:

byte[] raw = mVideoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);

ネイティブの解像度を得るために、rawの使用は興味深いようです。

JPEGの「品質」(コードによって解釈される)は、解像度とは関係ありません。むしろ、画像がどの程度圧縮されているかということです。品質が100の640x480の画像は、50の640x480の画像よりも見た目が良くなりますが、より多くのストレージスペースを使用します。

代わりにこれを試してください:

jpg = mVideoControl.getSnapshot("encoding=jpeg&quality=100&width=2048&height=1536");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top