とまと日記


記事の内容

前へ | 次へ

android ZXing バーコード出力
2011/07/06 19:53


journal.mycom.co.jp/column/tool/034/index.html
みたいにやっても、エラーになる。

07-06 18:23:29.103: ERROR/dalvikvm(10961): Could not find class 'java.awt.image.BufferedImage', referenced from method com.google.zxing.client.j2se.MatrixToImageWriter.toBufferedImage

とかなんとか。

もろもろ調べて見ても、マウスでしかJavaのコードが書けないようなオレにズバっと解決って言うサイトはなかなか無い。

journal.mycom.co.jp/column/tool/036/index.html
つまりimportってなんのことか良く分からないし。
これは読み込んだ画像を画面に出力する方法だから、ちょっと違うような。

要するにBitMatrixからBitmapへの変換が出来れば良いわけだから、
もうZXingとか余計なキーワードは入れないで検索してみたら出てきた。

zxing.googlecode.com/svn-history/r1393/trunk/android/src/com/google/zxing/client/android/encode/QRCodeEncoder.java

こんな感じでZXingのBitMtrixからBitmapへ変換できる。
------------------------------------------------------------------------------------------------------
           // QRコード用の出力ストリームを作成
           Writer writer = new QRCodeWriter();

            // エンコードを実行
            BitMatrix bitData = writer.encode(contents, BarcodeFormat.QR_CODE, 300, 300, encodeHint);

            // BitMatrix -> Bitmap変換(パクリソース)

            final int WHITE = 0xFFFFFFFF;
            final int BLACK = 0xFF000000;

            int width = bitData.getWidth();
            int height = bitData.getHeight();
            int[] pixels = new int[width * height];
            // All are 0, or black, by default
            for (int y = 0; y < height; y++) {
                int offset = y * width;
                for (int x = 0; x < width; x++) {
                    pixels[offset + x] = bitData.get(x, y) ? BLACK : WHITE;
                }
            }

            Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
------------------------------------------------------------------------------------------------------

後はいつものようにBitmapを扱ってやれば良い。

カテゴリ:ソフトウェア

前へ | 次へ

コメントを見る(0)
コメントを書く
トラックバック(0)
BlogTOP
このユーザーのホーム

ログイン

i-mobile


Powered By FC2ブログ