Android携帯クライアントQRコードスキャン
3381 ワード
このプロジェクトはすでにアップグレードされています.
ZBarのコンパイルプロジェクトの新しいアドレス:https://github.com/SkillCollege/ZBarBuildProj
ZBarのサンプルアイテムの新しいアドレス:https://github.com/SkillCollege/ZBarScanProj
ZXing3.1.0バージョンのアイテムアドレス:https://github.com/SkillCollege/ZXingProject
ZBar復号を用いる場合、ZXing 3を用いる.1.0スキャン、ZXingProjのDecodeHandler復号モジュールを修正し、ZXingの復号をZBarに置き換えるだけでよい
次のようになります.
QrCodeScan
これはAndroid携帯電話クライアントのQRコードスキャンに関するソースコードで、効率的なZBar復号ライブラリを使用し、中国語の文字化けしを修復しました.
ZXingコード(カメラ管理機能を使用)が融合しています.
一、オープンソースZXingスキャンを使用する欠点
1、元のコードはクロススクリーンモードで、縦スクリーンに変更できるが、スキャンインタフェースのカスタマイズとマルチスクリーンの組み合わせはよくない
2、有効なスキャンエリアはコントロールしにくい.自分の技術が未熟なせいか、いい方法が見つからない.
3、ZXingはJavaが書いたもので、QRコードの解析効率はZBarほど速くない
二、iOSを使ってよく使うZBarスキャンを開発する欠点
1、ZBarはCで実現したQRコード解析であるが、中国語を解析する際に文字化けしてしまう
2、ZBarのスキャンインターフェースはカメラの制御に対してZXingパッケージの良いことがありません
以上の理由から,筆者は両者を組み合わせて,カメラをZXingで制御して画像を取得し,スキャンしたデータをZBarで解析し,最終的に現在の項目を形成することにした.
三、開発手順
まずZXingのCamera制御コードを剥離し、スキャンした元のデータを得ると、ZXingのViewFindViewは個人的にあまりよくない感じで、いっそ私はそれを削除しました.
xmlファイルを直接レイアウトすることで、マルチスクリーンのフィットが瞬時に解決します.また,走査レーザ線のアニメーション効果については,縦横スクリーンの制御はコードを少し変換するだけで実現できる.ZBarの中国語の文字化けしてどのように解決するべきですか?ネットで探したらZBarのqrcodetxtを修正する必要があることに気づいた.c中のコードISO-8859-1をGBKに変更すれば良い
四、使用方法
1、Eclipseを直接インポートして実行すればよい
2、Android Studioで運行されている場合、現れる
ZBarのコンパイルプロジェクトの新しいアドレス:https://github.com/SkillCollege/ZBarBuildProj
ZBarのサンプルアイテムの新しいアドレス:https://github.com/SkillCollege/ZBarScanProj
ZXing3.1.0バージョンのアイテムアドレス:https://github.com/SkillCollege/ZXingProject
ZBar復号を用いる場合、ZXing 3を用いる.1.0スキャン、ZXingProjのDecodeHandler復号モジュールを修正し、ZXingの復号をZBarに置き換えるだけでよい
次のようになります.
private void decode(byte[] data, int width, int height) {
Size size = activity.getCameraManager().getPreviewSize();
// data ,
byte[] rotatedData = new byte[data.length];
for (int y = 0; y < size.height; y++) {
for (int x = 0; x < size.width; x++)
rotatedData[x * size.height + size.height - y - 1] = data[x + y * size.width];
}
//
int tmp = size.width;
size.width = size.height;
size.height = tmp;
Rect rect = activity.getCropRect();
ZBarDecoder zBarDecoder = new ZBarDecoder();
String result = zBarDecoder.decodeCrop(rotatedData, size.width, size.height, rect.left, rect.top, rect.width(), rect.height());
if (result != null) {
if (null != activity.getHandler()) {
Message msg = new Message();
msg.obj = result;
msg.what = R.id.decode_succeeded;
activity.getHandler().sendMessage(msg);
}
// Message message = Message.obtain(activity.getHandler(),
// R.id.decode_succeeded, result);
// if (null != message) {
// message.sendToTarget();
// }
} else {
// Message message = Message.obtain(activity.getHandler(),
// R.id.decode_failed);
// if (null != message) {
// message.sendToTarget();
// }
if (null != activity.getHandler()) {
activity.getHandler().sendEmptyMessage(R.id.decode_failed);
}
}
}
この文書は次のとおりです.https://github.com/SkillCollege QrCodeScan
これはAndroid携帯電話クライアントのQRコードスキャンに関するソースコードで、効率的なZBar復号ライブラリを使用し、中国語の文字化けしを修復しました.
ZXingコード(カメラ管理機能を使用)が融合しています.
一、オープンソースZXingスキャンを使用する欠点
1、元のコードはクロススクリーンモードで、縦スクリーンに変更できるが、スキャンインタフェースのカスタマイズとマルチスクリーンの組み合わせはよくない
2、有効なスキャンエリアはコントロールしにくい.自分の技術が未熟なせいか、いい方法が見つからない.
3、ZXingはJavaが書いたもので、QRコードの解析効率はZBarほど速くない
二、iOSを使ってよく使うZBarスキャンを開発する欠点
1、ZBarはCで実現したQRコード解析であるが、中国語を解析する際に文字化けしてしまう
2、ZBarのスキャンインターフェースはカメラの制御に対してZXingパッケージの良いことがありません
以上の理由から,筆者は両者を組み合わせて,カメラをZXingで制御して画像を取得し,スキャンしたデータをZBarで解析し,最終的に現在の項目を形成することにした.
三、開発手順
まずZXingのCamera制御コードを剥離し、スキャンした元のデータを得ると、ZXingのViewFindViewは個人的にあまりよくない感じで、いっそ私はそれを削除しました.
xmlファイルを直接レイアウトすることで、マルチスクリーンのフィットが瞬時に解決します.また,走査レーザ線のアニメーション効果については,縦横スクリーンの制御はコードを少し変換するだけで実現できる.ZBarの中国語の文字化けしてどのように解決するべきですか?ネットで探したらZBarのqrcodetxtを修正する必要があることに気づいた.c中のコードISO-8859-1をGBKに変更すれば良い
四、使用方法
1、Eclipseを直接インポートして実行すればよい
2、Android Studioで運行されている場合、現れる
Couldn't load libzbar from loader dalvik.system.PathClassLoader findLibrary returned null
:
A. so (src/main/jniLibs/armeabi/libzbar.so)
|src
|--main/
|----java/
|----res/
|----jniLibs/
|------armeabi
|--------libzbar.so
B.Rebuild Project
: ZbarManager 。 (com.zbar.lib)