とても参考になる解説ありがとうございます.一つだけ気になるところがあるのですがandroid update -p . -t TargetIDのところはandroid update project -p . -t TargetIDじゃないでしょうか? by kenji (2012-11-05 15:15)
> kenjiさんコメントありがとうございます。うわぁ、本当です。project忘れてますね。修正します。わざわざご指摘頂きましてありがとうございました! by Wiアシア (2012-11-06 08:52)
とても参考になります。1つ質問なのですが、QRコード読む際に、データ部分だけではなくて、誤り訂正レベルやそのQRコードのバージョンを知る方法はないでしょうか?以上お分かりでしたら教えて下さい。 by ノット (2013-07-01 13:11)
>ノットさんコメントありがとうございます。ただ、私は簡単なアプリを試しで作っただけで終わってしまったので、誤り訂正レベルなどを読み込む機能までは調べませんでした。とはいえ、そういった情報を読み込むアプリもあるみたいなので、なにかしら方法はあるんでしょうね〜 by Wiアシア (2013-07-07 21:14)
教えてください。camera2で撮影したQR-CODEをこのページの変換に従ったて変換しzxingに投げているのですがうまく行かないのです。 ==>。 Toast.makeText(getApplicationContext(), "Not Found", Toast.LENGTH_SHORT).show();に行ってしまうのです。カメラから渡されたbitmapにはQR-CODEが写っていました。サイズは1080*1920でbinaryBitmapの中のbits/heigthとwidthをみると同じく1080と1920が入っていました。これでうまく変換されているのかなと思っているのですが、QR-CODEを認識してくれないのです。何かアドバイスをいただけないでしょうか。「ここをチェックしてみたら」と言うようなアドバイスでも欲しいのです。 mCamera2.takePicture(new ImageReader.OnImageAvailableListener() { private static final String ENCORD_NAME = "ISO-8859-1"; @Override public void onImageAvailable(ImageReader reader) { // 撮れた画像をImageViewに貼り付けて表示。 final Image image = reader.acquireLatestImage(); ByteBuffer buffer = image.getPlanes()[0].getBuffer(); byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);// image.close(); // オリジナルソース // mImageView.setImageBitmap(bitmap); // mImageView.setVisibility(View.VISIBLE); // mTextureView.setVisibility(View.INVISIBLE); // ここまで LuminanceSource source = new RGBLuminanceSource(bitmap); Hashtable decodeHint = new Hashtable(); decodeHint.put(DecodeHintType.CHARACTER_SET, ENCORD_NAME); decodeHint.put(DecodeHintType.TRY_HARDER, true); BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source)); image.close(); Reader reader2 = new MultiFormatReader(); Result result = null; try { result = reader2.decode(binaryBitmap); String text = result.getText(); Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "Not Found", Toast.LENGTH_SHORT).show(); } } }); } by pochi (2017-04-18 16:34)
> pochiさん私の知識が実用レベルじゃないのであまり有力な意見はできませんが、・まずは例外の内容(Exception eの型やgetMessage()結果)を確認する(全てはココからかと)・binaryBitmapを別ファイルに出力してみて、元データと同じQRコードが吐き出せるか確認する・binaryBitmap(というかsource)の作り方を変えてみる(BufferedImageLuminanceSourceを使うとか)あたりをまずはチェックして、「うまく行かない」と仰っているのが具体的にどううまく行っていないか特定するのがいいんではないでしょうか。 by アシア (2017-04-19 09:16)
ログインすると自身のブログで本ブログを紹介できます
このブログの更新情報が届きます
この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。
とても参考になる解説ありがとうございます.
一つだけ気になるところがあるのですが
android update -p . -t TargetID
のところは
android update project -p . -t TargetID
じゃないでしょうか?
by kenji (2012-11-05 15:15)
> kenjiさん
コメントありがとうございます。
うわぁ、本当です。project忘れてますね。修正します。
わざわざご指摘頂きましてありがとうございました!
by Wiアシア (2012-11-06 08:52)
とても参考になります。
1つ質問なのですが、QRコード読む際に、
データ部分だけではなくて、誤り訂正レベルやそのQRコードのバージョンを
知る方法はないでしょうか?
以上お分かりでしたら教えて下さい。
by ノット (2013-07-01 13:11)
>ノットさん
コメントありがとうございます。
ただ、私は簡単なアプリを試しで作っただけで終わってしまったので、誤り訂正レベルなどを読み込む機能までは調べませんでした。
とはいえ、そういった情報を読み込むアプリもあるみたいなので、なにかしら方法はあるんでしょうね〜
by Wiアシア (2013-07-07 21:14)
教えてください。
camera2で撮影したQR-CODEをこのページの変換に従ったて変換しzxingに投げているのですがうまく行かないのです。
==>。 Toast.makeText(getApplicationContext(), "Not Found", Toast.LENGTH_SHORT).show();に行ってしまうのです。
カメラから渡されたbitmapにはQR-CODEが写っていました。
サイズは1080*1920でbinaryBitmapの中のbits/
heigthとwidthをみると同じく1080と1920が入っていました。
これでうまく変換されているのかなと思っているのですが、QR-CODEを認識してくれないのです。
何かアドバイスをいただけないでしょうか。
「ここをチェックしてみたら」と言うようなアドバイスでも欲しいのです。
mCamera2.takePicture(new ImageReader.OnImageAvailableListener() {
private static final String ENCORD_NAME = "ISO-8859-1";
@Override
public void onImageAvailable(ImageReader reader) {
// 撮れた画像をImageViewに貼り付けて表示。
final Image image = reader.acquireLatestImage();
ByteBuffer buffer = image.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
// image.close();
// オリジナルソース
// mImageView.setImageBitmap(bitmap);
// mImageView.setVisibility(View.VISIBLE);
// mTextureView.setVisibility(View.INVISIBLE);
// ここまで
LuminanceSource source = new RGBLuminanceSource(bitmap);
Hashtable decodeHint = new Hashtable();
decodeHint.put(DecodeHintType.CHARACTER_SET, ENCORD_NAME);
decodeHint.put(DecodeHintType.TRY_HARDER, true);
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));
image.close();
Reader reader2 = new MultiFormatReader();
Result result = null;
try {
result = reader2.decode(binaryBitmap);
String text = result.getText();
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Not Found", Toast.LENGTH_SHORT).show();
}
}
});
}
by pochi (2017-04-18 16:34)
> pochiさん
私の知識が実用レベルじゃないのであまり有力な意見はできませんが、
・まずは例外の内容(Exception eの型やgetMessage()結果)を確認する(全てはココからかと)
・binaryBitmapを別ファイルに出力してみて、元データと同じQRコードが吐き出せるか確認する
・binaryBitmap(というかsource)の作り方を変えてみる(BufferedImageLuminanceSourceを使うとか)
あたりをまずはチェックして、「うまく行かない」と仰っているのが具体的にどううまく行っていないか特定するのがいいんではないでしょうか。
by アシア (2017-04-19 09:16)