技术解读 一维码,二维码,zxing

一维码,二维码,zxing

什么是一维码、二维码?一维码就是商品包装盒上的条形码,例如:书本后面的条形码,在真维斯或者其他等品牌店的衣服标签上都可以看到,一维码的应用已经很广泛了;而二维码就是。。。。。。类似“马赛克”打格的图像,以图像中的黑白点数量、大小来表示0和1,因此二维码可以存储的信息远比一维码要多好多,例如火车票右下角的那个方块,别的实在想不起来了……反正现在也很多了。

技术角度介绍一维码:

条码卡以一组规则排列的条、空及其对应字符组成的条形码记载信息,常见的条码符号是由黑条和白空印刷而成,当光照射到条码符号上时,黑条和白空产生较强的对比度,从而利用条、空对光的不同反射率来识读信息。
条码卡分为一维码和二维码两种。一维码比较常用,如日常商品外包装上的条码就是一维码。它的信息存储量小,仅能存储一个代号,使用时通过这个代号调取计算机网络中的数据。二维码是近几年发展起来的,它能在有限的空间内存储更多的信息,包括文字、图象、指纹、签名等,并可脱离计算机使用。
条码卡制作简便,普通的条码按一定要求打印或复印即可,成本较低,但它的识读设备(特别是二维码的识读设备)比较昂贵。与磁卡和IC卡不同的是,条码卡内的信息不能改写,另外,安全性能差、标准也不统一,这些都限制了它的应用。
条码加载的信息是数字、字母,这些数字、字母是经过按一定标准编码的号串。
条码编码技术主要涉及条码编码规则及标准。条码编码规则是制定码制标准和对条码符号进行识别的主要依据。
目前,国际上常用码制有以下几种:
① UPC码
1973年,美国率先在国内的商业系统中应用。该码制主要用于商业系统。该码长度固定为12位。
② EAN码
1977年,欧洲经济共同体各国按照UPC码标准制定了欧洲物品编码EAN码。EAN码有两种类型:EAN-13码和EAN-8码。
③ 交叉25码
交叉25码(Interleaved 2 of 5 Code)是一种长度可变的连续自校验数字码制。
④ 39码
39码(Code 3 of 9)是长度可变的离散型自校验字母字式码制。
⑤ 库德巴码(codabar)
库德巴码是长度可变的离散型自校验数字码制。它常用于仓库、血库和航空快递包裹的管理工作中。
⑥ 128码(Code128)
128码(Code128)是一种长度可变的连续型字母数字式码制。
⑦ 中国邮政码(China Post Code)
中国邮政快件专用码。
⑧ 其它码:93码(Code 93),49码(Code 49),25码(Code 2 of 5),11码(Code 11),矩阵25码(Matrix 2 of 5

技术上的二维码:

二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。
  二维码分类:
  二维条码的种类很多,不同的机构开发出的二维条码具有不同的结构以及编写、读取方法。常见的二维条码有:QR码、PDF417码和DM码等。
  二维码的特点:
  二维条码比一维条码记载数据量更多,二维码条码是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。而且可以记载更复杂的数据,比如图片等。
  (1)、信息容量大
  根据不同的条空比例每平方英寸可以容纳250到1100个字符。在国际标准的证卡有效面积上(相当于信用卡面积的2/3,约为76mm*25mm), 二维码条码可以容纳1848个字母字符或2729个数字字符,约500个汉字信息。这种二维条码比普通条码信息容量高几十倍。
  (2)、编码范围广
  二维码条码可以将照片、指纹、掌纹、签字、声音、文字等凡可数字化的信息进行编码。
  (3)、保密、防伪性能好。
  二维码条码具有多重防伪特性,它可以采用密码防伪、软件加密及利用所包含的信息如指纹、照片等进行防伪,因此具有极强的保密防伪性能。
  (4)、译码可靠性高
  普通条码的译码错误率约为百万分之二左右,而二维码条码的误码率不超过千万分之一,译码可靠性极高。
  (5)、修正错误能力强
  二维码条码采用了世界上最先进的数学纠错理论,如果破损面积不超过50%,条码由于沾污、破损等所丢失的信息,可以照常破译出丢失的信息。
  (6)、容易制作且成本很低
  利用现有的点阵、激光、喷墨、热敏/热转印、制卡机等打印技术,即可在纸张、卡片、PVC、甚至金属表面上印出二维条码。由此所增加的费用仅是油墨的成本,因此人们又称二维码是“零成本”技术。
  (7)、条码符号的形状可变
  同样的信息量,二维码条码的形状可以根据载体面积及美工设计等进行自我调整。
  由于二维条码具有成本低,信息可随载体移动,不依赖于数据库和计算机网络、保密防伪性能强等优点,结合我国人口多、底子薄、计算机网络投资资金难度较大,对证件的防伪措施要求较高等特点,可以预见,二维码条码在我国极有推广价值。

上面的介绍都是对条码进行解释的,那在技术开发中我们该如何使用呢?
ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。使用ZXing,可以帮助大家在最短的时间内开发出检验1D/2D条形码的程序,ZXing的工作原理是打开手机摄像头,然后拍照,接着再在手机上解码1D/2D条形码。
要发挥ZXing最佳性能,那么你的手机就必须高像素,最好支持JSR-234,这个JSR-234就厉害咯-----对焦功能,为了保证图像解码尽可能正确,所以图像本身的清晰度一定要高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Files contained in zxing-1.6-core.jar: META-INF/MANIFEST.MF com.google.zxing.BarcodeFormat.class com.google.zxing.Binarizer.class com.google.zxing.BinaryBitmap.class com.google.zxing.ChecksumException.class com.google.zxing.DecodeHintType.class com.google.zxing.EncodeHintType.class com.google.zxing.FormatException.class com.google.zxing.LuminanceSource.class com.google.zxing.MultiFormatReader.class com.google.zxing.MultiFormatWriter.class com.google.zxing.NotFoundException.class com.google.zxing.Reader.class com.google.zxing.ReaderException.class com.google.zxing.Result.class com.google.zxing.ResultMetadataType.class com.google.zxing.ResultPoint.class com.google.zxing.ResultPointCallback.class com.google.zxing.Writer.class com.google.zxing.WriterException.class com.google.zxing.client.result.AbstractDoCoMoResultParser.class com.google.zxing.client.result.AddressBookAUResultParser.class com.google.zxing.client.result.AddressBookDoCoMoResultParser.class com.google.zxing.client.result.AddressBookParsedResult.class com.google.zxing.client.result.BizcardResultParser.class com.google.zxing.client.result.BookmarkDoCoMoResultParser.class com.google.zxing.client.result.CalendarParsedResult.class com.google.zxing.client.result.EmailAddressParsedResult.class com.google.zxing.client.result.EmailAddressResultParser.class com.google.zxing.client.result.EmailDoCoMoResultParser.class com.google.zxing.client.result.ExpandedProductParsedResult.class com.google.zxing.client.result.ExpandedProductResultParser.class com.google.zxing.client.result.GeoParsedResult.class com.google.zxing.client.result.GeoResultParser.class com.google.zxing.client.result.ISBNParsedResult.class com.google.zxing.client.result.ISBNResultParser.class com.google.zxing.client.result.ParsedResult.class com.google.zxing.client.result.ParsedResultType.class com.google.zxing.client.result.ProductParsedResult.class com.google.zxing.client.result.ProductResultParser.class com.google.zxing.client.result.ResultParser.class com.google.zxing.client.result.SMSMMSResultParser.class com.google.zxing.client.result.SMSParsedResult.class com.google.zxing.client.result.SMSTOMMSTOResultParser.class com.google.zxing.client.result.TelParsedResult.class com.google.zxing.client.result.TelResultParser.class com.google.zxing.client.result.TextParsedResult.class com.google.zxing.client.result.URIParsedResult.class com.google.zxing.client.result.URIResultParser.class com.google.zxing.client.result.URLTOResultParser.class com.google.zxing.client.result.VCardResultParser.class com.google.zxing.client.result.VEventResultParser.class com.google.zxing.client.result.WifiParsedResult.class com.google.zxing.client.result.WifiResultParser.class com.google.zxing.client.result.optional.AbstractNDEFResultParser.class com.google.zxing.client.result.optional.NDEFRecord.class com.google.zxing.client.result.optional.NDEFSmartPosterParsedResult.class com.google.zxing.client.result.optional.NDEFSmartPosterResultParser.class com.google.zxing.client.result.optional.NDEFTextResultParser.class com.google.zxing.client.result.optional.NDEFURIResultParser.class com.google.zxing.common.BitArray.class com.google.zxing.common.BitMatrix.class com.google.zxing.common.BitSource.class com.google.zxing.common.CharacterSetECI.class com.google.zxing.common.Collections.class com.google.zxing.common.Comparator.class com.google.zxing.common.DecoderResult.class com.google.zxing.common.DefaultGridSampler.class com.google.zxing.common.DetectorResult.class com.google.zxing.common.ECI.class com.google.zxing.common.GlobalHistogramBinarizer.class com.google.zxing.common.GridSampler.class com.google.zxing.common.HybridBinarizer.class com.google.zxing.common.PerspectiveTransform.class com.google.zxing.common.StringUtils.class com.google.zxing.common.detector.MonochromeRectangleDetector.class com.google.zxing.common.detector.WhiteRectangleDetector.class com.google.zxing.common.reedsolomon.GF256.class com.google.zxing.common.reedsolomon.GF256Poly.class com.google.zxing.common.reedsolomon.ReedSolomonDecoder.class com.google.zxing.common.reedsolomon.ReedSolomonEncoder.class com.google.zxing.common.reedsolomon.ReedSolomonException.class com.google.zxing.datamatrix.DataMatrixReader.class com.google.zxing.datamatrix.decoder.BitMatrixParser.class com.google.zxing.datamatrix.decoder.DataBlock.class com.google.zxing.datamatrix.decoder.DecodedBitStreamParser.class com.google.zxing.datamatrix.decoder.Decoder.class com.google.zxing.datamatrix.decoder.Version.class com.google.zxing.datamatrix.detector.Detector.class com.google.zxing.multi.ByQuadrantReader.class com.google.zxing.multi.GenericMultipleBarcodeReader.class com.google.zxing.multi.MultipleBarcodeReader.class com.google.zxing.multi.qrcode.QRCodeMultiReader.class com.google.zxing.multi.qrcode.detector.MultiDetector.class com.google.zxing.multi.qrcode.detector.MultiFinderPatternFinder.class com.google.zxing.oned.CodaBarReader.class com.google.zxing.oned.Code128Reader.class com.google.zxing.oned.Code128Writer.class com.google.zxing.oned.Code39Reader.class com.google.zxing.oned.Code39Writer.class com.google.zxing.oned.Code93Reader.class com.google.zxing.oned.EAN13Reader.class com.google.zxing.oned.EAN13Writer.class com.google.zxing.oned.EAN8Reader.class com.google.zxing.oned.EAN8Writer.class com.google.zxing.oned.EANManufacturerOrgSupport.class com.google.zxing.oned.ITFReader.class com.google.zxing.oned.ITFWriter.class com.google.zxing.oned.MultiFormatOneDReader.class com.google.zxing.oned.MultiFormatUPCEANReader.class com.google.zxing.oned.OneDReader.class com.google.zxing.oned.UPCAReader.class com.google.zxing.oned.UPCEANExtensionSupport.class com.google.zxing.oned.UPCEANReader.class com.google.zxing.oned.UPCEANWriter.class com.google.zxing.oned.UPCEReader.class com.google.zxing.oned.rss.AbstractRSSReader.class com.google.zxing.oned.rss.DataCharacter.class com.google.zxing.oned.rss.FinderPattern.class com.google.zxing.oned.rss.Pair.class com.google.zxing.oned.rss.RSS14Reader.class com.google.zxing.oned.rss.RSSUtils.class com.google.zxing.oned.rss.expanded.BitArrayBuilder.class com.google.zxing.oned.rss.expanded.ExpandedPair.class com.google.zxing.oned.rss.expanded.RSSExpandedReader.class com.google.zxing.oned.rss.expanded.decoders.AI013103decoder.class com.google.zxing.oned.rss.expanded.decoders.AI01320xDecoder.class com.google.zxing.oned.rss.expanded.decoders.AI01392xDecoder.class com.google.zxing.oned.rss.expanded.decoders.AI01393xDecoder.class com.google.zxing.oned.rss.expanded.decoders.AI013x0x1xDecoder.class com.google.zxing.oned.rss.expanded.decoders.AI013x0xDecoder.class com.google.zxing.oned.rss.expanded.decoders.AI01AndOtherAIs.class com.google.zxing.oned.rss.expanded.decoders.AI01decoder.class com.google.zxing.oned.rss.expanded.decoders.AI01weightDecoder.class com.google.zxing.oned.rss.expanded.decoders.AbstractExpandedDecoder.class com.google.zxing.oned.rss.expanded.decoders.AnyAIDecoder.class com.google.zxing.oned.rss.expanded.decoders.BlockParsedResult.class com.google.zxing.oned.rss.expanded.decoders.CurrentParsingState.class com.google.zxing.oned.rss.expanded.decoders.DecodedChar.class com.google.zxing.oned.rss.expanded.decoders.DecodedInformation.class com.google.zxing.oned.rss.expanded.decoders.DecodedNumeric.class com.google.zxing.oned.rss.expanded.decoders.DecodedObject.class com.google.zxing.oned.rss.expanded.decoders.FieldParser.class com.google.zxing.oned.rss.expanded.decoders.GeneralAppIdDecoder.class com.google.zxing.pdf417.PDF417Reader.class com.google.zxing.pdf417.decoder.BitMatrixParser.class com.google.zxing.pdf417.decoder.DecodedBitStreamParser.class com.google.zxing.pdf417.decoder.Decoder.class com.google.zxing.pdf417.detector.Detector.class com.google.zxing.qrcode.QRCodeReader.class com.google.zxing.qrcode.QRCodeWriter.class com.google.zxing.qrcode.decoder.BitMatrixParser.class com.google.zxing.qrcode.decoder.DataBlock.class com.google.zxing.qrcode.decoder.DataMask.class com.google.zxing.qrcode.decoder.DecodedBitStreamParser.class com.google.zxing.qrcode.decoder.Decoder.class com.google.zxing.qrcode.decoder.ErrorCorrectionLevel.class com.google.zxing.qrcode.decoder.FormatInformation.class com.google.zxing.qrcode.decoder.Mode.class com.google.zxing.qrcode.decoder.Version.class com.google.zxing.qrcode.detector.AlignmentPattern.class com.google.zxing.qrcode.detector.AlignmentPatternFinder.class com.google.zxing.qrcode.detector.Detector.class com.google.zxing.qrcode.detector.FinderPattern.class com.google.zxing.qrcode.detector.FinderPatternFinder.class com.google.zxing.qrcode.detector.FinderPatternInfo.class com.google.zxing.qrcode.encoder.BlockPair.class com.google.zxing.qrcode.encoder.ByteMatrix.class com.google.zxing.qrcode.encoder.Encoder.class com.google.zxing.qrcode.encoder.MaskUtil.class com.google.zxing.qrcode.encoder.MatrixUtil.class com.google.zxing.qrcode.encoder.QRCode.class

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值