如何使用六级条形码正反扫码器识别六级条形码正反的正反?能识别吗?

Android上使用ZXing识别条形码与二维码的方法
转载 &更新时间:日 16:18:18 & 投稿:shichen2014
这篇文章主要介绍了Android上使用ZXing识别条形码与二维码的方法,需要的朋友可以参考下
目前有越来越多的手机具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描的功能。手机具备条码扫描的功能,可以优化购物流程,快速存储电子名片(二维码)等。
本文所述实例就使用了ZXing 1.6实现条码/二维码识别。ZXing是个很经典的条码/二维码识别的开源类库,早在很久以前,就有开发者在J2ME上使用ZXing了,只不过需要支持JSR-234规范(自动对焦)的手机才能发挥其威力,而目前已经有不少Android手机具备自动对焦的功能。
本文代码运行的结果如下,使用91手机助手截图时,无法截取SurfaceView的实时图像:
本文使用了ZXing1.6的core,即把/zxing-1.6/core/下的src复制覆盖工程的src;另外还要使用到/zxing-1.6/android/下的PlanarYUVLuminanceSource.java。
此处需要注意:/zxing-1.6/android/ 是BarcodeScanner的源码,本文程序相当于BarcodeScanner的精简版,只保留最基本的识别功能。
本文完整源码点击此处。
源码目录结果如下图,ChecksumException.java下面还有很多源文件,截图尚未列出:
本文例子必须要开摄像头和自动对焦的权限,不然启动时会报异常,所用的权限如下:
&uses-permission android:name="android.permission.CAMERA"&&/uses-permission&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"&&/uses-permission&
&uses-feature android:name="android.hardware.camera" /&
&uses-feature android:name="android.hardware.camera.autofocus" /&
main.xml源码如下,main.xml必须要用到FrameLayout才能重叠控件实现“范围框”的效果:
&?xml version="1.0" encoding="utf-8"?&
&FrameLayout android:id="@+id/FrameLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"&
&SurfaceView android:layout_height="fill_parent"
android:id="@+id/sfvCamera" android:layout_width="fill_parent"&&/SurfaceView&
&RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_height="fill_parent" android:layout_width="fill_parent"&
&ImageView android:id="@+id/ImageView01"
android:layout_height="100dip" android:layout_width="160dip"&&/ImageView&
&View android:layout_centerVertical="true"
android:layout_centerHorizontal="true" android:layout_width="300dip"
android:background="#55FF6666" android:id="@+id/centerView"
android:layout_height="180dip"&&/View&
&TextView android:layout_centerHorizontal="true"
android:layout_width="wrap_content" android:layout_below="@+id/centerView"
android:layout_height="wrap_content" android:text="Scanning..."
android:id="@+id/txtScanResult" android:textColor="#FF000000"&&/TextView&
&/RelativeLayout&
&/FrameLayout&
testCamera.java是主类,负责控制Camera和对图像做解码,源码如下:
package com.testC
import java.util.T
import java.util.TimerT
import com.google.zxing.BinaryB
import com.google.zxing.MultiFormatR
import com.google.zxing.R
import com.google.zxing.Android.PlanarYUVLuminanceS
import com.google.zxing.common.HybridB
import android.app.A
import android.graphics.B
import android.hardware.C
import android.os.B
import android.view.SurfaceV
import android.view.V
import android.widget.ImageV
import android.widget.TextV
public class testCamera extends Activity {
/** Called when the activity is first created. */
private SurfaceView sfvC
private SFHCamera sfhC
private ImageView imgV
private View centerV
private TextView txtScanR
private Timer mT
private MyTimerTask mTimerT
// 按照标准HVGA
final static int width = 480;
final static int height = 320;
int dstLeft, dstTop, dstWidth, dstH
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTitle("Android条码/二维码识别Demo-----hellogv");
imgView = (ImageView) this.findViewById(R.id.ImageView01);
centerView = (View) this.findViewById(R.id.centerView);
sfvCamera = (SurfaceView) this.findViewById(R.id.sfvCamera);
sfhCamera = new SFHCamera(sfvCamera.getHolder(), width, height,
previewCallback);
txtScanResult=(TextView)this.findViewById(R.id.txtScanResult);
// 初始化定时器
mTimer = new Timer();
mTimerTask = new MyTimerTask();
mTimer.schedule(mTimerTask, 0, 80);
class MyTimerTask extends TimerTask {
public void run() {
if (dstLeft == 0) {//只赋值一次
dstLeft = centerView.getLeft() * width
/ getWindowManager().getDefaultDisplay().getWidth();
dstTop = centerView.getTop() * height
/ getWindowManager().getDefaultDisplay().getHeight();
dstWidth = (centerView.getRight() - centerView.getLeft())* width
/ getWindowManager().getDefaultDisplay().getWidth();
dstHeight = (centerView.getBottom() - centerView.getTop())* height
/ getWindowManager().getDefaultDisplay().getHeight();
sfhCamera.AutoFocusAndPreviewCallback();
* 自动对焦后输出图片
private Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera arg1) {
//取得指定范围的帧的数据
PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(
data, width, height, dstLeft, dstTop, dstWidth, dstHeight);
//取得灰度图
Bitmap mBitmap = source.renderCroppedGreyscaleBitmap();
//显示灰度图
imgView.setImageBitmap(mBitmap);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
MultiFormatReader reader = new MultiFormatReader();
Result result = reader.decode(bitmap);
String strResult = "BarcodeFormat:"
+ result.getBarcodeFormat().toString() + " text:"
+ result.getText();
txtScanResult.setText(strResult);
} catch (Exception e) {
txtScanResult.setText("Scanning");
SFHCamera.java是Camera控制类,源码如下:
package com.testC
import java.io.IOE
import android.graphics.PixelF
import android.hardware.C
import android.util.L
import android.view.SurfaceH
public class SFHCamera implements SurfaceHolder.Callback{
private SurfaceHolder holder =
private Camera mC
private int width,
private Camera.PreviewCallback previewC
public SFHCamera(SurfaceHolder holder,int w,int h,Camera.PreviewCallback previewCallback) {
this.holder =
this.holder.addCallback(this);
this.holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
this.previewCallback=previewC
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(width, height);//设置尺寸
parameters.setPictureFormat(PixelFormat.JPEG);
mCamera.setParameters(parameters);
mCamera.startPreview();//开始预览
Log.e("Camera","surfaceChanged");
public void surfaceCreated(SurfaceHolder arg0) {
mCamera = Camera.open();//启动服务
mCamera.setPreviewDisplay(holder);//设置预览
Log.e("Camera","surfaceCreated");
} catch (IOException e) {
mCamera.release();//释放
public void surfaceDestroyed(SurfaceHolder arg0) {
mCamera.setPreviewCallback(null);
mCamera.stopPreview();//停止预览
Log.e("Camera","surfaceDestroyed");
* 自动对焦并回调Camera.PreviewCallback
public void AutoFocusAndPreviewCallback()
if(mCamera!=null)
mCamera.autoFocus(mAutoFocusCallBack);
* 自动对焦
private Camera.AutoFocusCallback mAutoFocusCallBack = new Camera.AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
if (success) { //对焦成功,回调Camera.PreviewCallback
mCamera.setOneShotPreviewCallback(previewCallback);
其中testCamera.java的Camera.PreviewCallback previewCallback 是整个程序的逻辑核心,作为回调函数给SFHCamera.java的内部Camera类调用。
PS:本站还提供了一个功能非常强大的二维码生成工具,感兴趣的朋友可以参考一下:
希望本文实例对大家学习Android程序设计能有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具大家都在搜
一张图片里多个条形码采用什么方法识别?使用zxing 识别引擎。思路是什么?
一张图片,里面有多个条形码。要一次性全部识别出来怎么破?用过zxing,zxing 在多个条形码时只能识别出一个。试过multiReader 。不知道什么原因,好像是无法识别出来,不知道是不是用错了。 现在有个问题就是,怎么用单条形码的方法来识别多条形码?切图?(切图算法怎么来?)还是其他方法?或者更好的,不用单条码的识别,字节多条码方法
wedding10year的答复:
主要看条形码扫描枪的设置及扫描性能。&br/&&br/& 首先,你手机上待扫描的条码需是扫描枪所支持的码;其其次,扫描枪的扫描头针对手机屏幕码作了特殊调校,能够很好的应对光照及反光问题。&br/&&br/& 详情请咨询http://rakinda.com.cn@_@未必跟屏幕有关系。条码扫描软件、条形码识别软件_bctester V4.9.2.154 汉化版 - 偶要下载站
偶要下载站 / 绿色软件下载联盟站!为大家提供一手绿色软件下载服务!
当前位置: &
> 条码扫描软件、条形码识别软件_bctester V4.9.2.154 汉化版
条码扫描软件、条形码识别软件_bctester V4.9.2.154 汉化版
bctester是一套免费且强大的条码扫描软件、条形码识别软件。此软件支持对多种条形码类型的识别。
bcTester 是一套可在 Windows 上读取 QR Code(二维条码) 、PDF417 、及 Data Matrix 等条码的免费条码识别工具。软件使用上相当简单,只需将 QR Code 或者其他条码的图形载入 bcTester ,选择正确的条码按钮,即可读取。除了惯常的(线性)代码外 ,还可以确认较新的 2D 条形码 (PDF417 和数据矩阵)。可以测试的条形码所载的信息的种类。
使用方法:运行bctester,然后打开你需要识别的条码图像文件,然后点击上图中标示的红色处的按钮,即可把你图片中所有条码识别出来。
界面预览图:
您是不是需要打印条码?要打印条码的话必须要使用条码打印软件才可以打印,因为条码是生成的,现在条码打印软件相当多,今天小编就给大家整理归纳一下现在流行的条码打印软件有哪些,哪些又比较好...
整理时间:
整理时间:
整理时间:
整理时间:
整理时间:
整理时间:
整理时间:
整理时间:
整理时间:
条码扫描软件、条形码识别软件_bctester V4.9.2.154 汉化版
如果看不到下载地址,请更换其他浏览器!
想下载到手机上? 鼠标移动到左边二维码上扫一扫即可!
1、如果发现下载地址不能下载,请多试几个下载地址!安装及使用时出现问题,安装方法与使用教程请到官方网站获取或搜索。
2、为了保证您享受到最快的下载速度,推荐安装迅雷下载工具。如果下载后出现不能解压,请安装winrar等解压缩包软件!
3、如果下载的压缩包文件需要解压密码,网址就是解压密码:www.ouyaoxiazai.com
4、本站不提供该下载软件的破解版,注册机,注册码,序列号,注册密钥,激活码,等相关信息下载以及咨询!
绿色版/简体中文/★★☆☆☆
绿色版/简体中文/★★☆☆☆
免费版/简体中文/★★★★☆
绿色版/简体中文/★★☆☆☆
免费版/简体中文/★★☆☆☆
免费版/多国语言/★★★☆☆
下载排行榜
人气下载榜
偶要下载站集绿色软件下载、手机软件与游戏、各种素材、字体下载于一身的联盟网站,致力打造一个纯绿色软件下载乐园。
本站为非营利性网站,中国绿色联盟提供的资源均来自网络收集整理,下载个人纯属学习交流之用,如有侵犯您的版权请与我联系,我们会马上改正请在下载24小时内删除!
Copyright &
偶要下载(OuyaoXiazai.Com) All Rights Reserved. 鲁ICP备号 鲁公网安备74号弱弱的问一句:条码扫描枪可以扫描计算机屏幕上的条码吗?
[问题点数:50分,结帖人qingxin113]
本版专家分:129
结帖率 100%
CSDN今日推荐
本版专家分:1596
本版专家分:6173
本版专家分:24262
2011年2月 扩充话题大版内专家分月排行榜第三
本版专家分:5564
本版专家分:816296
2012年 荣获名人称号
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2011年3月 总版技术专家分月排行榜第一2011年2月 总版技术专家分月排行榜第一2011年1月 总版技术专家分月排行榜第一2010年12月 总版技术专家分月排行榜第一2010年11月 总版技术专家分月排行榜第一2010年10月 总版技术专家分月排行榜第一2010年9月 总版技术专家分月排行榜第一2010年8月 总版技术专家分月排行榜第一2010年7月 总版技术专家分月排行榜第一2010年6月 总版技术专家分月排行榜第一2010年5月 总版技术专家分月排行榜第一2010年3月 总版技术专家分月排行榜第一2010年4月 总版技术专家分月排行榜第一2010年2月 总版技术专家分月排行榜第一2010年1月 总版技术专家分月排行榜第一2009年12月 总版技术专家分月排行榜第一2009年11月 总版技术专家分月排行榜第一2009年10月 总版技术专家分月排行榜第一2009年8月 总版技术专家分月排行榜第一2009年7月 总版技术专家分月排行榜第一2009年6月 总版技术专家分月排行榜第一
本版专家分:14321
本版专家分:501
本版专家分:129
本版专家分:129
本版专家分:27154
本版专家分:14321
本版专家分:5
本版专家分:22912
本版专家分:54
本版专家分:5623
本版专家分:4977
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐

我要回帖

更多关于 条形码有正反吗 的文章

 

随机推荐