二维码

二维码生成细节和原理

拥有回忆 提交于 2019-12-12 13:12:31
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。 关于QR Code Specification,可参看这个PDF:http://raidenii.net/files/datasheets/misc/qr_code.pdf 基础知识 首先,我们先说一下二维码一共有40个尺寸。官方叫版本Version。Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version 3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21(V是版本号) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。 下面我们看看一个二维码的样例: 定位图案 Position Detection Pattern是定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了。

python 二维码

假装没事ソ 提交于 2019-12-11 10:30:40
pip3 install Pillow pip3 install qrcode import qrcode text ="gisoracle我爱你呀" #input("输入文字或URL:") # 设置URL必须添加http:// img = qrcode.make(text) img.save(r"d:\a.png") # 保存图片至本地目录,可以设定路径 img.show() 来源: https://www.cnblogs.com/gisoracle/p/12020778.html

金属圆点Data Matrix 二维码扫描实现

只愿长相守 提交于 2019-12-10 07:44:16
本人前段时间接触了接到一个二维码扫描项目,需要扫描奶粉罐底的圆点DataMatrix二维码,面积小,蓝色背景,用普通的二维码扫描工具根本无法识别,这时需要对图片进行一些处理,一开始想到的办法是把圆点变成方点,但是实现起来效果不行(算法不给力),几夜奋战后,终于实现,原理其实就是要对图片进行二值化处理。 需要源码的可以在这里下载:http://pan.baidu.com/s/1eQuwxWI 来源: oschina 链接: https://my.oschina.net/u/162091/blog/150038

微信扫描二维码登录网页的原理

社会主义新天地 提交于 2019-12-10 04:23:45
1.微信扫描二维码登录网页过程 [电脑] 打开 http://wx.qq.com ,得到二维码; [手机] 手机登录微信,点开扫一扫,扫描PC端二维码,并且扫描成功; [电脑] 手机扫描成功后,提示“登录网页版微信”;网页上显示“成功扫描 请在手机点击确认以登录”; [手机] 手机端点击“登录网页版微信”,网页跳转到用户的微信操作界面; 2.微信扫描二维码登录网页的原理 1. 每次打开微信网页版的时候,都会生成一个含有唯一 uid 的二维码,而且每次刷新后都会改变。这样可以保证一个 uid 只可以绑定一个账号和密码,确定登录用户的唯一性。可以通过手机上的UC浏览器提供的扫码功能查看二维码里面的信息,但并不会自动打开该地址, 微信客户端针对 http://weixin.qq.com/x/ 开头的地址做了特殊处理,会自动获取相关信息并提示确认。 在手机版微信访问这个页面进行确认时,Server已经同时获得了客户端信息,并通过之前保持的长连接告知浏览器。 返回的唯一 id,目的是为了识别用户身份,而且实际上打开这个页面的时候浏览器已经和 Server 创建了一个长连接等待确认信息。 查看 http://wx.qq.com 的源码可以看到,这个页面在加载完毕时,也已经把很多登录后才需要的相关资源都预先加载进来了,所以长连接等待登录用户得到确认后展示用户信息的速度很快

Zxing 二维码的生成,素材,logo的添加

点点圈 提交于 2019-12-10 04:01:46
前不久接到一个二维码的生成工作,要求生成的二维码添加指定的背景图和logo,在网上找了一些资料,用了zxing3.0的jar包,成功解决问题,现在和大家分享一下; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.URL; import java.util.Hashtable; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google

JAVA实现的微信扫描二维码支付

青春壹個敷衍的年華 提交于 2019-12-10 03:45:16
吐槽一下 支付项目采用springMvc+Dubbo架构实现,只对外提供接口。 话说,为什么微信支付比支付宝来的晚了那么一点,一句话,那一阵挺忙的,然后就没有时间整理,最近做完支付宝支付,顺便也把微信支付的也整理一下。 这里再吐槽一下,微信支付的DEMO基本为零,很多代码都是从网上查找的(也可能我么有仔细找API)。 前期酝酿准备 扫码支付,目前来说个人是不可以申请的,包括现在支付宝的即时到帐个人相关业务也取消了。所以这里必须有一个微信支付商户平台,具体怎么申请的,我也不清楚,只是拿来用的。 商户平台是要配合绑定微信公众账号使用的,具体操作申请下来已经绑定了,这里你也只管用就是了。 什么是扫码支付? 场景介绍 用户扫描商户展示在各种场景的二维码进行支付。 步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码(如图6.1),展示在各种场景,用于用户扫描购买。 步骤2:用户使用微信“扫一扫”(如图6.2)扫描二维码后,获取商品支付信息,引导用户完成支付(如图6.3)。 支付二维码 图6.1 支付二维码 打开微信扫一扫二维码 图6.2 打开微信扫一扫二维码 确认支付页面 图6.3 确认支付页面 步骤(3):用户确认支付,输入支付密码(如图6.4)。 步骤(4):支付完成后会提示用户支付成功(如图6.5),商户后台得到支付成功的通知,然后进行发货处理。 用户确认支付,输入密码 图6

二维码实现原理

霸气de小男生 提交于 2019-12-09 21:05:51
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。 关于QR Code Specification,可参看这个PDF: http://raidenii.net/files/datasheets/misc/qr_code.pdf 基础知识 首先,我们先说一下二维码一共有40个尺寸。官方叫版本Version。Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version 3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21(V是版本号) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。 下面我们看看一个二维码的样例: 定位图案 Position Detection Pattern是定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了

java实现二维码的生成与解析

☆樱花仙子☆ 提交于 2019-12-09 17:30:43
简单介绍下二维码:二维码其实就是一种编码技术,只是这种编码技术是用在图片上了,将给定的一些文字,数字转换为一张经过特定编码的图片,而解析二维码则相反,就是将一张经过编码的图片解析为数字或者文字。 当然了,这种编码的低层实现并不是那么的简单,都是那些顶级研发人员做的事,我们只需要简单了解并知道怎么使用就可以了。 那么肯定是要导入jar包依赖的吧,那不用说,是要导包的,我用的是谷歌提供的一个com.google.zxing.core版本是3.3.0的。 下面我们直接创建一个maven项目,用maven管理jar包很方便,而且我们需要的jar包基本都可以从官网下载进行依赖的添加。 创建好maven项目后,在项目的pom.xml中添加依赖: <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> 上面这段依赖可以直接到maven的官网进行copy,在maven依赖查询官网直接搜索zxing,我用的是3.3.0的版本。 相信大家对maven也已经比较熟悉了,具体大家可参考我的文章里面的《maven入门笔记》 jar包依赖添加完后,我们直接上代码: 第一个类: package com.yc.qrcode;

二维码的生成

痞子三分冷 提交于 2019-12-09 11:37:32
在写二维码之前,我们需要了解二维码的生成细节和原理。可以查看博客: https://www.cnblogs.com/alantu2018/p/8504373.html 在了解二维码的生成细节和原理后,就可以开始生成二维码了。 一、生成简单的二维码,二维码内容可以是文字和链接 : #生成简单的二维码使用库qrcode,二维码内容可以包含文字和链接 import qrcode def make_code(test): 'QRCode是qrcode库中封装好的一个类' qr=qrcode.QRCode(version = 5,# error_correction = qrcode.constants.ERROR_CORRECT_M, box_size = 8,#每个单位的像素 border = 4, ) #添加数据 qr.add_data(test) #生成二维码 qr.make(fit=True) #生成图片 img=qr.make_image() #保存图片 img.save("my_blong.png") #查看生成的二维码图片 img.show() #test=input("请输入你的值:") #make_code(test)    二、二维码通过静态或动态图片形式展示 如果我们需要生成的二维码是图片形式展示或者是动画方式展示,那么我们需要使用MyQR这个库