ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:18.71KB ,
资源ID:9058466      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9058466.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二维码识别源代码.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

二维码识别源代码.docx

1、二维码识别源代码QRCode Decodeusing System;using System.Text;using QRCodeImage = ThoughtWorks.QRCode.Codec.Data.QRCodeImage;using QRCodeSymbol = ThoughtWorks.QRCode.Codec.Data.QRCodeSymbol;using ReedSolomon = ThoughtWorks.QRCode.Codec.Ecc.ReedSolomon;using DecodingFailedException = ThoughtWorks.QRCode.Except

2、ionHandler.DecodingFailedException;using InvalidDataBlockException = ThoughtWorks.QRCode.ExceptionHandler.InvalidDataBlockException;using SymbolNotFoundException = ThoughtWorks.QRCode.ExceptionHandler.SymbolNotFoundException;using Point = ThoughtWorks.QRCode.Geom.Point;using QRCodeDataBlockReader =

3、ThoughtWorks.QRCode.Codec.Reader.QRCodeDataBlockReader;using QRCodeImageReader = ThoughtWorks.QRCode.Codec.Reader.QRCodeImageReader;using DebugCanvas = ThoughtWorks.QRCode.Codec.Util.DebugCanvas;using DebugCanvasAdapter = ThoughtWorks.QRCode.Codec.Util.DebugCanvasAdapter;using QRCodeUtility = Though

4、tWorks.QRCode.Codec.Util.QRCodeUtility;namespace ThoughtWorks.QRCode.Codec public class QRCodeDecoder internal QRCodeSymbol qrCodeSymbol; internal int numTryDecode; internal System.Collections.ArrayList results; internal System.Collections.ArrayList lastResults = System.Collections.ArrayList.Synchro

5、nized(new System.Collections.ArrayList(10); internal static DebugCanvas canvas; internal QRCodeImageReader imageReader; internal int numLastCorrections; internal bool correctionSucceeded; public static DebugCanvas Canvas get return QRCodeDecoder.canvas; set QRCodeDecoder.canvas = value; virtual inte

6、rnal Point AdjustPoints get / note that adjusts affect dependently / i.e. below means (0,0), (2,3), (3,4), (1,2), (2,1), (1,1), (-1,-1) / Point adjusts = new Point(0,0), new Point(2,3), new Point(1,1), / new Point(-2,-2), new Point(1,-1), new Point(-1,0), new Point(-2,-2); System.Collections.ArrayLi

7、st adjustPoints = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10); for (int d = 0; d - 4; y-) for (int x = 0; x - 4; x-) if (x != y & (x + y) % 2 = 0) adjustPoints.Add(new Point(x - lastX, y - lastY); lastX = x; lastY = y; Point adjusts = new PointadjustPoints.Count; f

8、or (int i = 0; i adjusts.Length; i+) adjustsi = (Point) adjustPointsi; return adjusts; internal class DecodeResult internal int numCorrections; internal bool correctionSucceeded; internal sbyte decodedBytes; private QRCodeDecoder enclosingInstance; public DecodeResult(QRCodeDecoder enclosingInstance

9、, sbyte decodedBytes, int numErrors, bool correctionSucceeded) InitBlock(enclosingInstance); this.decodedBytes = decodedBytes; this.numCorrections = numErrors; this.correctionSucceeded = correctionSucceeded; private void InitBlock(QRCodeDecoder enclosingInstance) this.enclosingInstance = enclosingIn

10、stance; virtual public sbyte DecodedBytes get return decodedBytes; virtual public int NumErrors get return numCorrections; virtual public bool CorrectionSucceeded get return correctionSucceeded; public QRCodeDecoder Enclosing_Instance get return enclosingInstance; public QRCodeDecoder() numTryDecode

11、 = 0; results = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10); QRCodeDecoder.canvas = new DebugCanvasAdapter(); /* public byte decode(QRCodeImage qrCodeImage) throws DecodingFailedException canvas.println(Decoding started.); int intImage = imageToIntArray(qrCodeImage

12、); try QRCodeImageReader reader = new QRCodeImageReader(); qrCodeSymbol = reader.getQRCodeSymbol(intImage); catch (SymbolNotFoundException e) throw new DecodingFailedException(e.getMessage(); canvas.println(Created QRCode symbol.); canvas.println(Reading symbol.); canvas.println(Version: + qrCodeSym

13、bol.getVersionReference(); canvas.println(Mask pattern: + qrCodeSymbol.getMaskPatternRefererAsString(); int blocks = qrCodeSymbol.getBlocks(); canvas.println(Correcting data errors.); int dataBlocks = correctDataBlocks(blocks); try byte decodedByteArray = getDecodedByteArray(dataBlocks, qrCodeSymbol

14、.getVersion(); canvas.println(Decoding finished.); return decodedByteArray; catch (InvalidDataBlockException e) throw new DecodingFailedException(e.getMessage(); */ public virtual sbyte decodeBytes(QRCodeImage qrCodeImage) Point adjusts = AdjustPoints; System.Collections.ArrayList results = System.C

15、ollections.ArrayList.Synchronized(new System.Collections.ArrayList(10); while (numTryDecode = 0) throw dfe; finally numTryDecode += 1; if (results.Count = 0) throw new DecodingFailedException(Give up decoding); int lowestErrorIndex = - 1; int lowestError = System.Int32.MaxValue; for (int i = 0; i re

16、sults.Count; i+) DecodeResult result = (DecodeResult) resultsi; if (result.NumErrors lowestError) lowestError = result.NumErrors; lowestErrorIndex = i; canvas.println(All trials need for correct error); canvas.println(Reporting # + (lowestErrorIndex) + that,); canvas.println(corrected minimum errors

17、 ( + lowestError + ); canvas.println(Decoding finished.); return (DecodeResult) resultslowestErrorIndex).DecodedBytes; public virtual String decode(QRCodeImage qrCodeImage, Encoding encoding) sbyte data = decodeBytes(qrCodeImage); byte byteData = new bytedata.Length; Buffer.BlockCopy(data, 0, byteDa

18、ta, 0, byteData.Length); /* char decodedData = new chardata.Length; for (int i = 0; i data.Length; i+) decodedDatai = Convert.to(datai); return new String(decodedData); */ String decodedData; decodedData = encoding.GetString(byteData); return decodedData; public virtual String decode(QRCodeImage qrC

19、odeImage) sbyte data = decodeBytes(qrCodeImage); byte byteData = new bytedata.Length; Buffer.BlockCopy(data, 0, byteData, 0, byteData.Length); Encoding encoding; if (QRCodeUtility.IsUnicode(byteData) encoding = Encoding.Unicode; else encoding = Encoding.ASCII; String decodedData; decodedData = encod

20、ing.GetString(byteData); return decodedData; internal virtual DecodeResult decode(QRCodeImage qrCodeImage, Point adjust) try if (numTryDecode = 0) canvas.println(Decoding started); int intImage = imageToIntArray(qrCodeImage); imageReader = new QRCodeImageReader(); qrCodeSymbol = imageReader.getQRCod

21、eSymbol(intImage); else canvas.println(-); canvas.println(Decoding restarted # + (numTryDecode); qrCodeSymbol = imageReader.getQRCodeSymbolWithAdjustedGrid(adjust); catch (SymbolNotFoundException e) throw new DecodingFailedException(e.Message); canvas.println(Created QRCode symbol.); canvas.println(

22、Reading symbol.); canvas.println(Version: + qrCodeSymbol.VersionReference); canvas.println(Mask pattern: + qrCodeSymbol.MaskPatternRefererAsString); / blocks contains all (data and RS) blocks in QR Code symbol int blocks = qrCodeSymbol.Blocks; canvas.println(Correcting data errors.); / now blocks tu

23、rn to data blocks (corrected and extracted from original blocks) blocks = correctDataBlocks(blocks); try sbyte decodedByteArray = getDecodedByteArray(blocks, qrCodeSymbol.Version, qrCodeSymbol.NumErrorCollectionCode); return new DecodeResult(this, decodedByteArray, numLastCorrections, correctionSucc

24、eeded); catch (InvalidDataBlockException e) canvas.println(e.Message); throw new DecodingFailedException(e.Message); internal virtual int imageToIntArray(QRCodeImage image) int width = image.Width; int height = image.Height; int intImage = new intwidth; for (int i = 0; i width; i+) intImagei = new intheight; for (int y = 0; y height; y+) for (int x = 0; x 0) canvas.println(System.Convert.ToStri

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2