文档章节

Zxing 二维码扫描

kylinhuang
 kylinhuang
发布于 2015/06/11 16:19
字数 339
阅读 64
收藏 0
点赞 0
评论 0

ZXing---- 开源项目 版本 2015-5-15

github----https://github.com/zxing/zxing 

core ---- ZXingCore_2015_5_15.jar

android_core ---项目中 有所修改 

删除不需要的文件

delete  

---package com.google.zxing.client.android.history; ---历史

---package com.google.zxing.client.android.wifi; 

---com.google.zxing.client.android.clipboard     ----copy

---

modify

--- CaptureActivity  ---Too much to change

--- DecodeHandler decode方法中 

PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(data, width, height);前面

----add 更改宽高

byte[] rotatedData = new byte[data.length];

for (int y = 0; y < height; y++) {

for (int x = 0; x < width; x++)

rotatedData[x * height + height - y - 1] = data[x + y * width];

}

int tmp = width;

width = height;

height = tmp;

data = rotatedData;

---CameraManager getFramingRect方法 ---设置选择区域Rect 

framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);更改

//---change

int width = findDesiredDimensionInRange(screenResolution.x,MIN_FRAME_WIDTH, MAX_FRAME_WIDTH);

int height = findDesiredDimensionInRange(screenResolution.y,MIN_FRAME_HEIGHT, MAX_FRAME_HEIGHT);

//---Modify

DisplayMetrics metrics = context.getResources().getDisplayMetrics();

int width = (int) (metrics.widthPixels * 0.7);

int height = (int) (width * 0.9);


int leftOffset = (screenResolution.x - width) / 2;

int topOffset = (screenResolution.y - height) / 2;


// add

topOffset = (screenResolution.y - height) / 4;

---CameraManager getFramingRectInPreview方法 --- 计算屏幕的位置

//---change

rect.left = rect.left * cameraResolution.x / screenResolution.x;

rect.right = rect.right * cameraResolution.x /screenResolution.x;

rect.top = rect.top * cameraResolution.y / screenResolution.y;

rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y;

//---Modify

rect.left = rect.left * cameraResolution.y / screenResolution.x;

rect.right = rect.right * cameraResolution.y / screenResolution.x;

rect.top = rect.top * cameraResolution.x / screenResolution.y;

rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;

---CameraManager openDriver方法 设置竖屏

theCamera.setPreviewDisplay(holder);之后添加

//add

theCamera.setDisplayOrientation(90);

---CameraConfigurationManager initFromCameraParameters方法

cameraResolution = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution);之前添加

//add

// ------

Point screenResolutionForCamera = new Point();

screenResolutionForCamera.x = screenResolution.x;

screenResolutionForCamera.y = screenResolution.y;

if(screenResolution.x < screenResolution.y) {

screenResolutionForCamera.x = screenResolution.y;

screenResolutionForCamera.y = screenResolution.x;

}

//----



Zxing 连续扫描

1扫描完成添加

if (surfaceHolder != null)

    initCamera(surfaceHolder);

if (handler != null)

    handler.restartPreviewAndDecode(); 

2.initCamera方法是有参数的,可参考onResume方法改为

SurfaceView surfaceView = (SurfaceView)findViewById(R.id.preview_view);;

SurfaceHolder surfaceHolder = surfaceView.getHolder();
initCamera(surfaceHolder);

3.mHandler即为当前Activity中的CaptureActivityHandler

4.restartPreviewAndDecode方法在com.zxing.decoding.CaptureActivityHandler中,要改为public


© 著作权归作者所有

共有 人打赏支持
kylinhuang
粉丝 3
博文 31
码字总数 23836
作品 0
九江
高级程序员
Android微信扫描二维码登入实现 基于ZXing开源工程

项目需求,做一个类似微信扫描二维码,网页端登陆的功能实现。 利用开源项目ZXing来实现。ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1...

jeffzhao
2013/02/02
0
7
利用iText和zxing生成和读pdf417二维码

前面的一些博文中已经提到了zxing这个开源工具生成和读取二维码图片,仅从学习的角度来看,可以告一个段落。在实际的生产环境中,应用zxing生成和读取二维码,却存在一些问题: 使用扫描枪读...

彭苏云
2014/03/06
0
0
基于zxing-lib三步实现Android二维码应用

只需要基于开源项目zxing-lib,便可轻松创建独立二维码App,也可将二维码功能集成进App内。本文也是zxing-lib的使用文档。同时抛砖引玉,欢迎大家一起共建zxing-lib。 项目地址:https://git...

yuminw
2014/08/23
0
8
ZXing读写二维码,桌面和手机的不同用法

虽然ZXing是用Java实现的Barcode开源库,但是并不代表桌面上实现的Barcode应用在手机上也可以直接使用。因为Android的Java接口有很多是不同的。这里分享下Java Barcode生成和读取的不同用法。...

yushulx
2015/08/18
0
0
Java js 生成二维码 解析二维码

1.二维码分类   二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型。 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行。 图示: 2. 矩阵...

haoyuehong
06/28
0
0
Android平台利用ZXING生成二维码图片

zxing是google的一个开源二维码项目,目前基本上和二维码打交道的东西,都会用到它. 最近项目中用到了android手机需要根据提供的字符串生成二维码图片,之前用zxing做过二维码解码,编码还没做过...

xiahuawuyu
2012/04/25
0
0
利用zxing读写PDF417码制的二维码

项目中需要用到二维码,二维码的码制是PDF417,在做了一番研究之后发现zxing是个不错的开源工具(代码托管在google上面)。为什么选择zxing,由于其他一些工具比如barcode4j(开源,支持读,...

彭苏云
2013/12/17
0
0
基于zxing生成与解析二维码、条形码

基于zxing(https://github.com/zxing/zxing)与maven,针对二维码(包括带图片的二维码)、条形码进行了简单的封装,以便在项目中更好的利用。 ZXing是一个开源Java类库用于解析多种格式的1D/...

cloud-coder
2014/03/17
0
0
【基于zxing的编解码实战】精简Barcode Scanner篇

通过《【搞定条形码】zxing项目源码解读(2.3.0版本,Android部分)》的分析,现在可以实现最终目标了:精简Barcode Scanner并将其中的编码和解码分离为两个独立的部分,方便日后快速集成到自...

Madmatrix
2013/12/31
0
4
在Android上使用ZXing识别条码/二维码

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 越来越多的手机具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描的功能.......手机具备条码扫描的功能,可以优化购...

zungyiu
2010/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

数据结构与算法2

一个数组的例子,实现查找,显示和删除的功能。 public class array {public static void main(String[] args){long[] arr;arr = new long[100];int nElems = 0;int j;...

沉迷于编程的小菜菜
15分钟前
0
0
Python3 基于 requests 批量下载图片

Python3 基于 requests 批量下载图片 import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encod......

leeyi
16分钟前
0
0
Sparkstreaming and Kafka

简介 Kafka 0.10的Spark Streaming集成设计与0.8 Direct Stream方法类似。 它提供了简单的并行性,Kafka分区和Spark分区之间的1:1对应关系,以及对偏移量和元数据的访问。 但是,由于较新的...

刺猬一号
20分钟前
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
48分钟前
0
0
Redis数据的导出和导入(dump和load方式)

网上有些文章已经不再适用,本人也是踩了些坑,在此记录下。 迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式...

iplusx
52分钟前
1
0
ElasticSearch 高亮显示大文档搜索结果

2016年12月,我们开始研究Ambar——一个文档搜索系统。Ambar使用ElasticSearch作为核心搜索引擎。 在Ambar开发的过程中,我们处理了很多与ES相关的问题,我们想分享我们得到的宝贵经验。让我...

九州暮云
今天
1
0
Python 使用 pywifi 模块 破解wifi密码

git https://github.com/awkman/pywifi 常见常量 from pywifi import const# Define interface status.IFACE_DISCONNECTED = 0IFACE_SCANNING = 1IFACE_INACTIVE = 2IFACE_CONNEC......

阿豪boy
今天
2
0
phpstorm使用Iedis

phpstorm的redis插件Iedis是真好用 看了网上挺多的文章,但是由于我系统还是ubuntu,就有点尴尬了,现在破解之后,留个笔记,即使自己之后有需要也可以很快翻阅 先下载资源 资源下载 zip压缩...

贤郎--均灵
今天
0
0
第三章 spring-bean之FactoryBeanRegistrySupport(4)

前言 从FactoryBeanRegistrySupport类的名字可以看出FactoryBeanRegistrySupport负责FactoryBean的注册与支持。如果想知道FactoryBean相关的资料,请阅读spring-bean中关于FactoryBean的解读...

鸟菜啊
今天
0
0
CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部