精华内容
下载资源
问答
  • 可以生成二维码

    2014-09-24 18:55:59
    多种条码二维码 可以生成二维码
  • PB做二维码例子

    2014-09-22 15:31:39
    用pb制作的二维码例子,不同版本请重建工程,重新添加对象
  • 用idea,后台,怎么做二维码的库存管理啊?的流程是什么样的?用的技术是JAVA求大神指教
  • android中最火的二维码开源库,ZxingLibrary 可以扫描二维码,生成二维码等功能。生成二维码和扫描二维码教程请看博文:http://blog.csdn.net/qq_21376985/article/details/51327291
  • 批量生产二维码工具 ,解压即可使用
  • https://blog.csdn.net/my_batis/article/details/111193350 效果图查看地址 测试 连接: http://localhost:8086/musice/qrcode
  • JAVA二维码软件

    2011-02-18 13:48:13
    使用JAVA制作的二维码编码译码软件。可以实现二维码的生成和解码
  • 二维码_二维码_源码

    2021-10-01 16:35:31
    二维码扫描,可以通过相机扫描出二维码的结果
  • 最近有负责微信开发,对于微信开发的项目,肯定少不了二维码啦,正好有个这样的需求,这对不同的商品生成一个二维码,扫码即刻下单。博主就弄了一个二维码生成的工具类。弄出来之后,产品经理又说了,中间放上公司的...

    最近有负责微信开发,对于微信开发的项目,肯定少不了二维码啦,正好有个这样的需求,这对不同的商品生成一个二维码,扫码即刻下单。博主就弄了一个二维码生成的工具类。

    弄出来之后,产品经理又说了,中间放上公司的logo是不是好一点?加上吧,

    加上公司logo之后,产品经理想了想,每个商品都有个二维码,销售人员有很多个商品二维码,群发给用户,在qq群上,微信群上,怎么知道哪个二维码对应哪个商品的呢?于是决定要加上商品名称。最后商品二维码就成了下面这个模样了(当然啦,这里面的logo并不是博主现职公司的)。

    这里写图片描述

    效果已经出来啦,下面附上代码啦

    如果读者不需要logo或者二维码名称的,读懂代码后进行删减即可。注释多多,还是很容易看懂的。

    package com.luo.wctweb.util;
    
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.imageio.ImageIO;
    import org.apache.commons.codec.binary.Base64;
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.WriterException;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    
    /**  
     * @Description: (二维码)     
     * @author:luoguohui  
     * @date:2015-10-29 下午05:27:13     
     */
    public class ZXingCode
    {
        private static final int QRCOLOR = 0xFF000000;   //默认是黑色
        private static final int BGWHITE = 0xFFFFFFFF;   //背景颜色
    
    
        public static void main(String[] args) throws WriterException  
        {  
            try  
            {  
                getLogoQRCode("https://www.baidu.com/", "跳转到百度的二维码");
            }  
            catch (Exception e)  
            {  
                e.printStackTrace();  
            }  
        }  
    
    
        /**
         * 生成带logo的二维码图片
         *
         * @param qrPic
         * @param logoPic
         */
        public static String getLogoQRCode(String qrUrl,String productName)
        {
    //      String filePath = (javax.servlet.http.HttpServletRequest)request.getSession().getServletContext().getRealPath("/") + "resources/images/logoImages/llhlogo.png";
            //filePath是二维码logo的路径,但是实际中我们是放在项目的某个路径下面的,所以路径用上面的,把下面的注释就好
            String filePath = "C:/Users/luoguohui/Desktop/78310a55b319ebc4fa3aef658126cffc1f17168f.png";  //TODO  
            String content = qrUrl;
            try
            {  
                ZXingCode zp = new ZXingCode();
                BufferedImage bim = zp.getQR_CODEBufferedImage(content, BarcodeFormat.QR_CODE, 400, 400, zp.getDecodeHintType());
                return zp.addLogo_QRCode(bim, new File(filePath), new LogoConfig(), productName);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 给二维码图片添加Logo
         *
         * @param qrPic
         * @param logoPic
         */
        public String addLogo_QRCode(BufferedImage bim, File logoPic, LogoConfig logoConfig, String productName)
        {
            try
            {
                /**
                 * 读取二维码图片,并构建绘图对象
                 */
                BufferedImage image = bim;
                Graphics2D g = image.createGraphics();
    
                /**
                 * 读取Logo图片
                 */
                BufferedImage logo = ImageIO.read(logoPic);
                /**
                 * 设置logo的大小,本人设置为二维码图片的20%,因为过大会盖掉二维码
                 */
                int widthLogo = logo.getWidth(null)>image.getWidth()*3/10?(image.getWidth()*3/10):logo.getWidth(null), 
                    heightLogo = logo.getHeight(null)>image.getHeight()*3/10?(image.getHeight()*3/10):logo.getWidth(null);
    
                /**
                 * logo放在中心
                 */
                 int x = (image.getWidth() - widthLogo) / 2;
                 int y = (image.getHeight() - heightLogo) / 2;
                 /**
                 * logo放在右下角
                 *  int x = (image.getWidth() - widthLogo);
                 *  int y = (image.getHeight() - heightLogo);
                 */
    
                //开始绘制图片
                g.drawImage(logo, x, y, widthLogo, heightLogo, null);
    //            g.drawRoundRect(x, y, widthLogo, heightLogo, 15, 15);
    //            g.setStroke(new BasicStroke(logoConfig.getBorder()));
    //            g.setColor(logoConfig.getBorderColor());
    //            g.drawRect(x, y, widthLogo, heightLogo);
                g.dispose();
    
                //把商品名称添加上去,商品名称不要太长哦,这里最多支持两行。太长就会自动截取啦
                if (productName != null && !productName.equals("")) {
                    //新的图片,把带logo的二维码下面加上文字
                    BufferedImage outImage = new BufferedImage(400, 445, BufferedImage.TYPE_4BYTE_ABGR);
                    Graphics2D outg = outImage.createGraphics();
                    //画二维码到新的面板
                    outg.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
                    //画文字到新的面板
                    outg.setColor(Color.BLACK); 
                    outg.setFont(new Font("宋体",Font.BOLD,30)); //字体、字型、字号 
                    int strWidth = outg.getFontMetrics().stringWidth(productName);
                    if (strWidth > 399) {
    //                  //长度过长就截取前面部分
    //                  outg.drawString(productName, 0, image.getHeight() + (outImage.getHeight() - image.getHeight())/2 + 5 ); //画文字
                        //长度过长就换行
                        String productName1 = productName.substring(0, productName.length()/2);
                        String productName2 = productName.substring(productName.length()/2, productName.length());
                        int strWidth1 = outg.getFontMetrics().stringWidth(productName1);
                        int strWidth2 = outg.getFontMetrics().stringWidth(productName2);
                        outg.drawString(productName1, 200  - strWidth1/2, image.getHeight() + (outImage.getHeight() - image.getHeight())/2 + 12 );
                        BufferedImage outImage2 = new BufferedImage(400, 485, BufferedImage.TYPE_4BYTE_ABGR);
                        Graphics2D outg2 = outImage2.createGraphics();
                        outg2.drawImage(outImage, 0, 0, outImage.getWidth(), outImage.getHeight(), null);
                        outg2.setColor(Color.BLACK); 
                        outg2.setFont(new Font("宋体",Font.BOLD,30)); //字体、字型、字号 
                        outg2.drawString(productName2, 200  - strWidth2/2, outImage.getHeight() + (outImage2.getHeight() - outImage.getHeight())/2 + 5 );
                        outg2.dispose(); 
                        outImage2.flush();
                        outImage = outImage2;
                    }else {
                        outg.drawString(productName, 200  - strWidth/2 , image.getHeight() + (outImage.getHeight() - image.getHeight())/2 + 12 ); //画文字 
                    }
                    outg.dispose(); 
                    outImage.flush();
                    image = outImage;
                }
                logo.flush();
                image.flush();
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                baos.flush();
                ImageIO.write(image, "png", baos);
    
                //二维码生成的路径,但是实际项目中,我们是把这生成的二维码显示到界面上的,因此下面的折行代码可以注释掉
                //可以看到这个方法最终返回的是这个二维码的imageBase64字符串
                //前端用 <img src="data:image/png;base64,${imageBase64QRCode}"/>  其中${imageBase64QRCode}对应二维码的imageBase64字符串
                ImageIO.write(image, "png", new File("C:/Users/luoguohui/Desktop/TDC-" + new Date().getTime() + "test.png")); //TODO  
    
                String imageBase64QRCode =  Base64.encodeBase64URLSafeString(baos.toByteArray());
    
                baos.close();
                return imageBase64QRCode;
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            return null;
        }
    
    
        /**
         * 构建初始化二维码
         *
         * @param bm
         * @return
         */
        public BufferedImage fileToBufferedImage(BitMatrix bm)
        {
            BufferedImage image = null;
            try
            {
                int w = bm.getWidth(), h = bm.getHeight();
                image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    
                for (int x = 0; x < w; x++)
                {
                    for (int y = 0; y < h; y++)
                    {
                        image.setRGB(x, y, bm.get(x, y) ? 0xFF000000 : 0xFFCCDDEE);
                    }
                }
    
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            return image;
        }
    
        /**
         * 生成二维码bufferedImage图片
         *
         * @param content
         *            编码内容
         * @param barcodeFormat
         *            编码类型
         * @param width
         *            图片宽度
         * @param height
         *            图片高度
         * @param hints
         *            设置参数
         * @return
         */
        public BufferedImage getQR_CODEBufferedImage(String content, BarcodeFormat barcodeFormat, int width, int height, Map<EncodeHintType, ?> hints)
        {
            MultiFormatWriter multiFormatWriter = null;
            BitMatrix bm = null;
            BufferedImage image = null;
            try
            {
                multiFormatWriter = new MultiFormatWriter();
                // 参数顺序分别为:编码内容,编码类型,生成图片宽度,生成图片高度,设置参数
                bm = multiFormatWriter.encode(content, barcodeFormat, width, height, hints);
                int w = bm.getWidth();
                int h = bm.getHeight();
                image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    
                // 开始利用二维码数据创建Bitmap图片,分别设为黑(0xFFFFFFFF)白(0xFF000000)两色
                for (int x = 0; x < w; x++)
                {
                    for (int y = 0; y < h; y++)
                    {
                        image.setRGB(x, y, bm.get(x, y) ? QRCOLOR : BGWHITE);
                    }
                }
            }
            catch (WriterException e)
            {
                e.printStackTrace();
            }
            return image;
        }
    
        /**
         * 设置二维码的格式参数
         *
         * @return
         */
        public Map<EncodeHintType, Object> getDecodeHintType()
        {
            // 用于设置QR二维码参数
            Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
            // 设置QR二维码的纠错级别(H为最高级别)具体级别信息
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
            // 设置编码方式
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            hints.put(EncodeHintType.MARGIN, 0);
            hints.put(EncodeHintType.MAX_SIZE, 350);
            hints.put(EncodeHintType.MIN_SIZE, 100);
    
            return hints;
        }
    }
    
        class LogoConfig
        {
            // logo默认边框颜色
            public static final Color DEFAULT_BORDERCOLOR = Color.WHITE;
            // logo默认边框宽度
            public static final int DEFAULT_BORDER = 2;
            // logo大小默认为照片的1/5
            public static final int DEFAULT_LOGOPART = 5;
    
            private final int border = DEFAULT_BORDER;
            private final Color borderColor;
            private final int logoPart;
    
            /**
             * Creates a default config with on color {@link #BLACK} and off color
             * {@link #WHITE}, generating normal black-on-white barcodes.
             */
            public LogoConfig()
            {
                this(DEFAULT_BORDERCOLOR, DEFAULT_LOGOPART);
            }
    
            public LogoConfig(Color borderColor, int logoPart)
            {
                this.borderColor = borderColor;
                this.logoPart = logoPart;
            }
    
            public Color getBorderColor()
            {
                return borderColor;
            }
    
            public int getBorder()
            {
                return border;
            }
    
            public int getLogoPart()
            {
                return logoPart;
            }
        }

    需要说明的是以上代码依赖了com.google.zxing和包含base64编码(commons-codec)这两个个插件,如果读者跟博主一样都是使用maven的话,添加下面依赖即可。
    如果没有用maven的话,直接在http://maven.outofmemory.cn/com.google.zxing/core/3.1.0/ 下载。

    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>3.1.0</version>
    </dependency>
    
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.8</version>
    </dependency>
    展开全文
  • 虽然没有微信的那么精致,但是效果还是可以的,所以将自己修改UI的代码和扫描二维码的代码分享给大家,一是自己以后项目遇到同样的功能直接拷贝来用,二是给还没有加入二维码功能的人一个参考,站在巨人的肩膀上,...
  • 1. 手机微信、UC等 扫面二维码获取可以打电话的二维码: 2. 电脑可以直接访问:http://www.online-service.vip/qrg

    1. 手机微信、UC等 扫面二维码获取可以打电话的二维码:

     

    2. 电脑可以直接访问: http://www.online-service.vip/qrg

    展开全文
  • 本人自己实现的一篇论文代码,算法将秘密二维码共享到三个二维码中,因为二维码的错误纠错码,每个被修改后的二维码(3个share)都可以被正确解码。三个share通过XOR操作还原秘密二维码。本文代码为matlab代码,可以...
  • 二维码扫描

    2017-03-30 17:27:53
    二维码扫描的一款apk,可以生成二维码,也可扫描二维码
  • 上传二维码解析,长按识别二维码,生存二维码,reqrcode.js等功能。二维码解析是否成功返回路径,代码直接可以运行
  • 二维码识别程序 包含编码和识别程序 程序可以使用 无报错
  • 可以扫描二维码;并且可以输入信息,生成对应的二维码。原创亲测,功能均可以实现。
  • 二维码DLL 

    2018-10-13 15:59:33
    二维码DLL 
  • 二维码工具

    2018-12-12 15:09:39
    本软件可以读取屏幕上的二维码,把二维码信息识别出来,这样可以不用摄像头和使用手机啦!也可以把网址转换成二维码,把名片信息填完生成二维码也行。
  • 1行Python代码制作动态二维码

    万次阅读 多人点赞 2019-09-07 18:02:42
    近日在GitHub上发现了一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码、艺术二维码(黑白/彩色)和动态GIF二维码

    目录

    1、二维码简介

    2、普通二维码

    3、艺术二维码

    4、动态二维码


    1、二维码简介

    目前流行的二维码(QR code)是1994年由日本Denso-Wave公司发明的。英文字中 QR 所代表的意义是Quick Response,即快速反应。QR code最早用于汽车制造商追踪零件&#

    展开全文
  • 微信二维码

    2015-04-24 14:42:35
    本资源为微信二维码扫描功能,可以扫描二维码和解析本地二维码图片。
  • zing二维码

    2015-09-19 10:11:47
    很详细的二维码扫扫描,可以二维码同时裁剪二维码显示,并且打开二维码网址,很适合初学者,注释简单明了
  • 可以生成各种各样的彩色二维码,花式二维码
  • 二维码

    千次阅读 2008-04-30 11:24:00
    http://livekandy.blog.163.com/blog/#pn2目录什么是二维码?...先从我们生活中最常见的一维码引入吧,你看到书、杂志、CD等很多东西后面都可以见到,黑白色的竖形条下面有一串数字的,这就是一维码。

    http://livekandy.blog.163.com/blog/#pn2

    目录

    什么是二维码?

    二维码的历史!

    二维码技术指标!

    二维码使用流程及应用!

    二维码产业链!

    二维码前景!

    ————————————————————

    什么是二维码?

    先从我们生活中最常见的一维码引入吧,你看到书、杂志、CD等很多东西后面都可以见到,黑白色的竖形条下面有一串数字的,这就是一维码。如下图

    二维码从字面上就能看出来是一维码的升级码,我相信过不了多久会在相当范围内替代一维码并且二维码还开阔了不少新的应用空间,更便民更方便,这东西给了我们无限的想像空间。

    二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。 下图就是二维码

    国内常见的二维码QR码

    二维码的历史!

    二维码技术最早在美国诞生,在上世纪80年代末二维码的研究就已风靡了整个欧美;在21世纪初这股二维码技术在日韩移动通信市场有了进一步的推广和运用,推起了一股亚洲二维码热潮。在移动领域应用最多的是日韩和台湾地区。

    在2004年底的一次国际运营商交流大会上,中国移动董事长王建宙看完NTT DoCoMo进行的一个手机条码业务演示后,立即指示相关部门去日本进行考察。2005年4月,中国移动手机条码项目在内部立项,2006年10月,中国移动就完成了手机条码整体的测试和规范的最后验收工作。在中国移动二维码的业务规范中,对短信、名片、邮件、上网、 IVR都做出了相关规定。
    2006年8月作为中国最大运营商的中国移动的高调宣布提供手机二维码服务,正式开启了中国大陆二维码手机应用的大门,一条新的产业链正在快速形成。

    下面看下二维码手机应用在亚洲的应用推广时间,如下图

     

    二维码技术指标!

    目前全球一、二维码超过250 种,其中常见的有20 余种。而目前国内二维码产品大多源自于国外的技术,如美国PDF417码、日本的QR码、韩国DM码,应用最为广泛的码字为QR(Data Matrix)码和DM(Quick Response code)码。我国自行研发的GM和CM。

    下面看下名国在二维码技术上的选择

    美国——以PDF417码为主

    由美国讯宝科技公司(Symbol)研发并推广的堆叠式二维码标准,其全称为PortableDataFile三个单词的首字母的缩写,意为“便携数据文件”。

    日本——以QR码为主

    QR码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,其全称为QuicklyResponse,意思是快速响应。它是目前日本主流的手机二维码技术标准,除具有二维码所具有的一般的性能优点外,还可高效地表示汉字。

    韩国——DM码

    DM码,其全称为DataMatrix,中文名称为数据矩阵。DM采用了复杂的纠错码技术,使得该编码具有超强的抗污染能力。DM码由于其优秀的纠错能力成为韩国手机二维码的主流技术。

    中国自行研发的——GM和CM。

    国产的GM和CM标准是中国信息产业部于2006年5月份,所颁布的两项国产行业推荐标准。

      GM码其全称为网格码(Grid Matrix Code)是一种正方形的二维码码制,该码制的码图由正方形宏模块组成,每个宏模块由6乘6个正方形单元模块组成。网格码可以编码存储一定量的数据并提供5个用户可选的纠错等级。

    而CM码表示"紧密矩阵"的英文Compact Matrix的缩写。码图采用齿孔定位技术和图像分段技术,通过分析齿孔定位信息和分段信息可快速完成二维条码图像的识别和处理。

    但中国运营商选择的是日本流行的QR码和韩国流行的DM码。在技术选择上可能有多种因素在内造成此种局面,中国二维码的研究工作开展较晚,自有技术标准形成时。QR和DM相关的商业公司已经在国内起动多时。

    二维码的技术差别

    二维码主要二个技术指标信息存储容量和信息纠错功能。

    信息存储容量

    二维条码的单位面积(每平方英寸)的信息存储容量,即信息密度,成为我们衡量二维码性能的第一重要指标。通常情况下二维码的信息密度是一维条码的几十到几百倍。因此把信息全部存储在一个二维条码中,要查看相关信息只要用识读设备扫描二维条码即可,不需要事先建立数据库,从而真正实现了条码与信息之间的直接映射关系。

    从表1比较可以看出,QR标准的单位面积信息存储量最大,PDF417标准的单位面积信息存储量在五种标准中最小(且伴随最低的纠错信息),而DM,GM和CM标准的存储能力属于1K~2K字节之间。

      因此,从单位面积信息存储容量排序为:QR>CM>DM>GM>PDF417

    信息纠错功能

    二维条码具有一定的纠错功能,其纠错算法与人造卫星和VCD等所用的纠错算法相似。这种纠错机制使得二维条码成为一种安全可靠的信息存储和识别的方法,这是一维条码无法相比的。而且不同的二维码标准的纠错功能都有各自的纠错级别和纠错信息,以及纠错率。因此从某种意义上说,纠错功能从某种程度上说明了二维码技术的鲁棒性的强弱。

    从表2比较可以看出,DM的纠错分级是唯一的非离散连续分级的标准,也就是说它的纠错功能可以根据用户的需求在其范围内任意设定,因此DM标准的纠错功能细化最强。PDF417的纠错分级为9级,在四个离散分级标准中纠错分级级数最多,也就是说它的纠错离散等级相对来说最为细化;QR的4级纠错等级分级则是少的。因此纠错分级级数排序为:DM>PDF417>CM>GM>QR。

      这里需要说明,二维码的纠错功能是由纠错码通过校正复杂运算让错误信息得以纠正。因此二维码的信息存储会包含两个部分,一个是有效信息,另一个是纠错信息。每种二维码标准会对自己的纠错划分等级,客户可以根据自己对有效信息容量和纠错功能的需求来进行选择。同样的二维码标准,纠错功能越强,它的有效信息存储容量也就相对越少。

    其他综合性功能

    除了上述的两个主要指标的提高外,二维码技术的性能指标的提升可表现在一方面综合性功能的增加,如可表示多种语言文字,可表示图像、声音数据,可引入加密机制等;另一方面表现在抗畸变、抗污损的等能力的提升。

    从上面的三方面性能指标比较来看,这五种二维码技术标准都有各自的性能特点。而作为通信运营商在选择应用和推广的二维码标准时,首当其冲的应该考虑是技术性能上的是否能够满足手机二维码的实际性能参数要求,而这仅仅是决策的第一步;其后对成本(包含技术成本、运营成本、营销成本等)的考虑;还有对支持国产标准或接轨国际标准的取舍问题。总之,要对这些错综复杂的因素进行全面地考虑做出决策,这是运营商面前摆着的一道很棘手的二维码技术标准非定向选择题。

    二维码使用流程及应用!

     

    开始提到了二维码的应用非常广泛,简单的说他就是一个会运算小屏幕,可以做的事非常多。就目前来说他主要有4种应用方式读取数据模式、解码上网模式、解码验证模式、解码通信模式。

     

    数据模式

    读取数据模式是指通过手机或二维码识别设备,扫描二维码,解码软件解码后显示数据信息,以较少用户的输入,直接可以存入。最常见的应用有电子名片、电子会员卡等。

      在制作名片时,可以将姓名、电话等信息用二维条码编码,打印在名片的一角。人们交换名片时,用手机拍摄二维条码图案,解码后就可将对方信息储存在自己手机的电话簿里,省略了传统的手工录入过程,也克服了目前使用名片识别软件对名片识别不准确的难题,即可实现电子数据交换,非常方便。

    数据读取模式流程图

    它可以衍生出,对显示的数据信息进行写入,反馈到服务器,然后再发送回手机,打印或存储在手机上,作为一种凭证或单据,例如交通警察处理违章驾驶事件时,扫描驾驶员的驾驶证上的二维码,则自动显示驾驶员的相关信息,然后交警输入违章代码,发送到指定服务器,服务器获取数据更改数据库,并发送违章记录单到交警手机上,以便打印。

     数据读取衍生模式流程图

     

    解码上网模式

     解码上网方式是指手机或条码识读设备扫面二维码,显示相关的URL的链接,用户可以访问这一链接,进行数据浏览或数据下载的活动。最为基本的模式是网络信息浏览,比如电子广告、商场特价区信息、网站信息查询、电子图书、电子地图查询等。

      未来生活中,一般的商品、名片甚至报纸、杂志上的广告都会附有相应的二维码,把网站链接录入到二维码中,人们用内置二维条码阅读引擎的手机扫描二维条码后,解析网址IP,就可以自动链接到相应的WAP网站上,可直接浏览商品、下载折扣券、用手机支付购票等。亦可随时随地的轻松体验像铃声、游戏、视频等流媒体信息,为消费者带来了一种全新的手机上网模式。

     解码上网模式流程图

    其衍生模式是指信息下载,如图铃下载、音响样段下载、息券下载、电子购票等。

     解码上网衍生模式流程图

    解码验证模式

    解码验证模式是指手机或二维码识别设备扫面二维码,将数据提交与验证服务器,服务器将反馈结果发送回手机,核实产品或服务的有效性。最基本的应用在于产品防伪信息的识别,衍生模式多应用于物流或渠道管理中,也有应用于支付领域,用于支付凭证的核实等。长期以来,假冒伪劣商品危及着企业和消费者的切身利益,严重影响着国家的经济发展。由于受制于防伪技术、防伪方式的单一,普通消费者缺乏防伪工具等因素,防伪效果不理想。

      利用安装了二维条码阅读引擎的手机,即可有效解决上述问题。二维条码具有多重防伪特性,它可以采用密码防伪、软件加密及利用所包含的信息如指纹、照片等进行防伪,因此具有极强的保密防伪性能。

      二维条码防伪认证平台同时引入了硬件和基于业务的结构,提供商品的基本信息和离线认证。厂家给每件出厂的商品分配产品编码,该产品编码是生产商品时依据相应的编码标准给该商品分配的二维编码。并建立商品信息数据库,存储已经出厂的商品相关信息。用数据库系统做为商品防伪的认证平台。消费者购买商品时,用安装了二维条码阅读引擎的手机扫描产品上的二维条码并查询生产商的商品信息数据库就可以辨识该商品的真伪。通过这种防伪技术,将对维护正常的市场秩序起到很大的推进作用。

    解码验证模式流程图

     

    解码通信模式

    解码通信模式主要是指解码后结果显示为短信、邮件或电话号码的形式,多用于短信投票、邮件联系、电话咨询或IVR等业务形式。

     解码通信模式流程图

    二维码产业链!

    以上介绍了,二维码主要的4种应用形式,以此成型的产为链非常之广,技术提供商、服务商、SP、终端厂商、运营商、媒体和网站、行业和企业。

    ·服务商

    在这有些像广告行业的媒介,为客户主直接提供全套解决方案,有时服务商自身也是技术提供商。下面提到的[新锐新创]、[银河传媒]就是服务商。

    目前在国内服务商是即中移动之外推动二维码业务最积极的。他们也是直接链接客户和二维码用户(消费者)者。为他们提供二维码运营平台。

    ·SP

      首先,SP内容同质化,缺乏品牌。目前在增值服务市场上,SP的产品同质化,缺乏自主品牌现象明显。所有的SP公司,无论是大的还是小的,都在移动梦网和联通在信两个大的品牌下努力的运做。无论是从短信、WAP还是IVR等表现形式上来说,还是从提供的内容无论是图铃下载、交友聊天、占扑测试等等,都明显的缺乏明显的品牌。

      目前的移动增值业务更多起到通道作用,因此必须更多体现互动、实用化才有发展,二维码促进MVAS与媒体、生活、内容的互动能力

      其次是SP推广手段单一有限。多数SP都简单的以群发来推广其业务。典型的跟风成性,这样最终的结果是劳民伤财但是没有一点的效果。目前主要是群发、媒体直投,业务转化率低,二维码是一种借助任何载体的推广手段,而且互动、针对性强,用户自发性强。

      第三,客户需求不足。产品必须要有一定的针对性和倾向性,要照顾到本地消费习惯,地域特色,消费水平,还要迎合当前地方运营商的推广的主题,不切合实际的产是没有市场的。目前集中于娱乐(图铃),用户认为可用性和动力不强。二维码的推出,增强了用户的互动性,而且具有标识性,便于SP针对不同的用户采取一定的营销方案,锁定相应的客户。

      此外,手机终端的输入限制。手机用户对于网址的输入一直非常不便,限制了用户的使用频率。手机二维码的推出,内嵌有彩信、短信或URL,增强了互动性。

      ·终端厂商

      对手机制造厂商而言,二维码业务的推广,最直接的获益是促进拍照手机的推广。手机二维码识读的前提是拍照手机、识读软件以及拍照精度的要求。因而,手机二维码业务的推广在很大程度上将促进手机制造商拍照手机的销售。

      对于识读设备企业而言,也将增加其识读设备的销量,此外也将加大企业识读软件的投入。由于手机二维码在行业应用时,企业需要配备识读设备和识读软件,因而对于识读设备企业以及二维码技术提供商而言,将是一笔不小的收益。

      ·运营商

      对于运营商而言,即使二维码本身没有盈利模式,但二维码促进了跨媒体互动,促进了移动第五媒体的影响力,带动了MVAS的更加丰富和可用性,带来了MVAS的流量(短信、彩信、电话、WAP流量),促进了手机上网。

      ·媒体和网站

      手机二维码业务的推出,需要依附一定的载体,而且同时,媒体作为传统的传输媒介,一直受限于内容少、形式单一、互动性差等,两者的有效结合,很好的解决了媒体的缺陷。给媒体带来了新的发展机遇。

      企业网站的建设,随着互联网的发展,有很大突破。但是企业网站的手机实际浏览情况和利用率却不是很理想。主要原因在于URL地址记忆比较困难,手机输入也极其不方便。为此,手机二维码的出现,内嵌了网站地址,减少了用户输入的工作。而且可以借企业网站来进行进一步的广告效应。因而随着手机二维码业务的成熟,网站建设也将呈现出新的气象。

      ·行业和企业

      对于传统行业和企业而言,面对激烈的竞争,如何有限的进行客户营销,提高广告的效果是企业普遍关注的。二手机二维码的行业应用,一方面解决了普通广告的效果不足,可以利用有限的载体,以及内嵌的丰富信息,实现跨媒体广告的作用;另一方面,可以对客户进行精确化的营销,锁定目标客户,进行有针对性地宣传,降低广告成本。

     世界各国二维码的应用

     

    日本:QR码

    QR码最初由夏浦等日系厂商共同制定,为了方便手机上网而开发。目前日本市场上已有很成熟的QR手机二维码市场应用,QR条形码在日本得到相当规模的应用,日本的海报、游览手册、传单、折扣券、电子票证,甚至连树上都贴着二维码,成为日本手机用户登陆网站以及获得广告商品信息的非常便捷的方式。NTT Docomo推出的手机中将有超过90%具有QR编码识别功能。

    韩国:DM码

    在韩国,DM码则大行其道,最近用户突破了千万,也被证明是成功的模式。韩国的铃声下载和游戏已成最热门DM读码服务,许多的游戏厂商和内容提供商,每天都会在报纸上刊出不同服务的二维条码,让消费者更快去找到使用的内容。

      日韩手机二维码的普及是有特定背景的。在这两国市场上,都是运营商主导制,甚至用户交话费运营商就有可能赠送部手机,运营商主推二维码很快就能形成气候。

     

    欧洲:DM码

    在欧洲,DM码已在德国、乌克兰、奥地利、瑞士、意大利等国家应用,尤其是在销售足球赛门票时广泛使用手机购买的电子票。而英国也计划在2010年推出手机二维码登机牌,乘客不需要机票和登机牌,只需要用手机上的登机二维码扫描即可。

    中国:QR和DM码并行

    中国目前用手机浏览WAP网页的用户还很少,手机上网多按照信息流量来收费,通信费都比较昂贵。但中国手机二维码用户量在未来几年将呈现快速增长态势,如图2所示,2007年预计将有超过700万用户,到2010年有望达到2.7亿人。

    但我认为中移动对此预计过于乐观。

    目前中国移动采用的是矩阵式的QR和DM码,继2006年8月初DM码识别系统正式开通后,中国移动针对个人服务的另一种手机二维条码QR码也已测试完毕。中国移动的DM码和QR码两种分别与银河传媒和意锐新创公司展开了合作,推广两种码制在各方面的运用。

      目前在中国移动的二维码业务中,DM码和QR码同时存在,这也说明了中国移动并不想冒险马上做出决定,所以两种码在中国目前来看都有机会。但与此同时,国内对DM条码的使用处于未经授权状态,一旦专利权利人发起侵权诉讼,将给整个产业带来重大经济损失,所以QR码在这一方面更占优势。 

     

    二维码前景! 

    二维码可谓前景无限,在未来2-3年内肯定红透一片天,现在可以说是中国二维码的起步阶段大部份的投入都是在教导用户,培育市场。就目前而已国内广告主、潜在客户、商家对此的了解都太少了。一般用户那更是少之又少。还有一个背景要随中国手机智能手机用户普及率来。在手机硬件方面国内支持二维码,预装二维码软件的更是少之又少。最后是中国运营商的推动和技术的选择,只有他们确定了技术选择倾向二维码才能在国内得到更好的发展,就目前而说中国移动是QR和DM码并行对用户对广告主、潜在客户、商家都不是一件好事,我认为只有统一了才好推广才更方面做大。

     

    参考文章:

     沈维:超媒体可解决传统平面媒体某些局限性

    http://www.donews.com/content/200602/77b0d938300843e6a8db5ce21aeed346.shtm

    2006-2-24 出处:互联网周刊

     中移动的二维码计划

    http://www.donews.com/content/200611/d2d0b82adec14991b5cb0963e8f152f7.shtm

     出处:IT经理世界 | 2006-11-23

    IT168专题:掘金 在手机二维码业务中寻找宝藏

    http://subject.it168.com/nblue/200701/tele/erweima/index.shtml

    出处:IT168  2007-02

    相关介绍:

    IT168专题:掘金 在手

     C114 中国通信网   通信关键字: 二维码 —

    http://www.c114.net/keyword/%B6%FE%CE%AC%C2%EB

    百度百科  二维码

    http://baike.baidu.com/view/132241.htm

    相关网站:

    二维码手机资料网

    http://www.qrwap.com/

    新锐新创(中移动二维码 QR码 唯一合作商)

    http://www.inspiry.com.cn/

    银河传媒(中移动二维码 DM码 唯一合作商)

    http://www.gmedia.cn/

    夏浪科技(DM码)

    http://www.sumlung.com/

    意锐科技MOIN(中国移动合作 二维码、手机二维码生成)

    http://www.moin.com.cn/

    展开全文
  • 我自己写的angularjs的二维码代码
  • 微微二维码

    2019-05-06 15:13:59
    微微二维码生成器可以生成多个批量生成多个二维码二维码解析,同时还有多个生成模板选择,非常实用。
  • 生成二维码,解析二维码。 通过C#程序,生成相关的二维码,和解析二维码可以把解析的结果放入剪切板中,可以保存解析的结果。
  • meQrcode.vue ...-- 生成二维码开放接口: 二维码内容[通常为url] 二维码大小[限制为正方形] 二维码中间显示:文字或LOGO[默认不显示]--> <div id="meQrcode"> <div class="qrcode_box...
  • 二维码工具可解析、生成二维码可以生成普通无图二维码,也可生成带图标的二维码;且支持二维码读取解析、名片二维码、电话二维码、WIFI热点二维码以及短信二维码等;功能简单实用 。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 299,381
精华内容 119,752
关键字:

哪里可以做二维码