# More Important:
##该项目已经有了升级版本:
>* ZBar的编译项目新地址: https://github.com/SkillCollege/ZBarBuildProj
>* ZBar的示例项目新地址: https://github.com/SkillCollege/ZBarScanProj
>* ZXing3.1.0版本项目地址: https://github.com/SkillCollege/ZXingProject
如果使用ZBar解码并且使用ZXing3.1.0扫描,只需要修改ZXingProj中的DecodeHandler解码模块,将ZXing的解码换成ZBar即可
如:
```Java
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);
}
}
}
```
QrCodeScan
==========
这是Android手机客户端关于二维码扫描的源码,使用了高效的ZBar解码库,并修复了中文乱码。
融合了ZXing代码(使用其中的相机管理功能)。
一、 使用开源ZXing扫描的缺点
1、原始代码是横屏模式,尽管可以改成竖屏,但是扫描界面的自定义和多屏幕适配不好做
2、有效扫描区域不好控制,可能是我自己技术不成熟,没找到好方法
3、ZXing是Java写的,对二维码的解析效率没有ZBar快
二、 使用iOS开发经常使用的ZBar扫描的缺点
1、 ZBar是C实现的二维码解析,但是在解析中文时会乱码
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)
感谢@Houny提供的Android Studio下运行异常解决方法。
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
QrCodeScan-master.rar_android_android 二维码_pet3gn_site:www.pudn.c (269个子文件)
libiconv.a 7KB
qrdec.c 135KB
convert.c 38KB
databar.c 34KB
img_scanner.c 27KB
rs.c 26KB
ean.c 25KB
code128.c 20KB
processor.c 19KB
binarize.c 19KB
v4l2.c 18KB
qrdectxt.c 16KB
vfw.c 15KB
decoder.c 14KB
v4l1.c 14KB
codabar.c 12KB
symbol.c 11KB
video.c 11KB
code93.c 11KB
x.c 10KB
code39.c 10KB
window.c 10KB
scanner.c 10KB
win.c 9KB
xv.c 9KB
posix.c 9KB
win.c 9KB
image.c 9KB
x.c 8KB
i25.c 8KB
ximage.c 7KB
jpeg.c 7KB
lock.c 7KB
pdf417.c 7KB
svg.c 6KB
error.c 6KB
config.c 5KB
bch15_5.c 5KB
isaac.c 4KB
util.c 3KB
qr_finder.c 3KB
vfw.c 3KB
null.c 3KB
dib.c 2KB
v4l.c 2KB
null.c 2KB
android_zbar.c 2KB
refcnt.c 1KB
null.c 1KB
iconv.c 532B
.classpath 466B
.classpath 466B
processor.o.d 7KB
img_scanner.o.d 7KB
img_scanner.o.d 7KB
null.o.d 7KB
null.o.d 7KB
qrdec.o.d 6KB
qrdec.o.d 6KB
qrdectxt.o.d 5KB
qrdectxt.o.d 5KB
qr_finder.o.d 5KB
binarize.o.d 5KB
binarize.o.d 5KB
codabar.o.d 5KB
databar.o.d 5KB
code128.o.d 5KB
code39.o.d 5KB
code93.o.d 5KB
ean.o.d 5KB
i25.o.d 5KB
decoder.o.d 5KB
qr_finder.o.d 4KB
window.o.d 4KB
window.o.d 4KB
decoder.o.d 4KB
isaac.o.d 4KB
isaac.o.d 4KB
convert.o.d 4KB
convert.o.d 4KB
null.o.d 4KB
null.o.d 4KB
video.o.d 4KB
video.o.d 4KB
null.o.d 4KB
null.o.d 4KB
image.o.d 4KB
image.o.d 4KB
error.o.d 3KB
error.o.d 3KB
symbol.o.d 3KB
symbol.o.d 3KB
android_zbar.o.d 3KB
android_zbar.o.d 3KB
zbar_manager.o.d 3KB
zbar_manager.o.d 3KB
scanner.o.d 3KB
scanner.o.d 3KB
iconv.o.d 3KB
svg.o.d 3KB
共 269 条
- 1
- 2
- 3
资源评论
朱moyimi
- 粉丝: 61
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功