精华内容
下载资源
问答
  • 在现代社会中,我们出行坐公交经常会看到二维码,支付宝微信收款也会有二维码扫一扫,那么这些二维码是怎样生成的了,今天我们不研究二维码的原理,只教大家如何制作属于自己的二维码。 1.目的 自己用程序打造一款...

    在现代社会中,我们出行坐公交经常会看到二维码,支付宝微信收款也会有二维码扫一扫,那么这些二维码是怎样生成的了,今天我们不研究二维码的原理,只教大家如何制作属于自己的二维码。

    1.目的

    自己用程序打造一款属于自己的个性二维码。

    2.准备

    编辑器:sublime text 3
    浏览器:360浏览器
    模块:MyQR

    3.步骤

    一、分析网站二维码生成

    在实践前我们可以先看看网站上的二维码生成。

    在这里我要分享一个二维码网址,算是知名度比较大的二维码在线生成工具:草料二维码。

    它支持很多种生成二维码的方式:
    在这里插入图片描述
    可以看出生成种类还是挺丰富的,基本上能满足我们所有的要求,而且他还有很多其他丰富的功能。最重要的是所有功能都免费。
    在这里插入图片描述
    在这里插入图片描述
    这样就完成了一个文本二维码,我们只要用扫码工具一扫就能看到‘任性的90后boy’这几个字。

    推荐下我自己建的Python开发技术交流qq群:810735403

    二、模块生成

    下面我们来用命令集制作属于自己的二维码,今天给大家介绍一个神器:myqr模块。

    它的操作方法比较简单,只需在cmd窗口中操作即可。

    1.安装
    pip install myqr
    
    2.基本用法

    在这里插入图片描述
    可以看出它生成一张照片,而且我把它找出来了,真的太机智啦~

    打开我的微信一扫,显示的就是 ‘/?’,原谅我还没从cmd的命令中缓过神来。下面我们来看看帮助文件能给我们什么答案吧。
    在这里插入图片描述
    显示的包的内容是他可以是一个脚本也可以是一个命令行,还是挺强大的,先去看它的源代码吧。
    在这里插入图片描述
    通过分析我知道了这个工具的确强大,而且参数也不多,比较简单。下面是我总结它的参数含义,不知道对不对:

    words:单词,应该是内容
    version:版本
    level:级别
    picture:背景图
    colorized:颜色
    contrast:对比度
    brightness:亮度
    save_name:名称
    save_dir:路径
    
    3.生成原始二维码

    那么说淦就淦,我们先来生成张简单的吧。
    在这里插入图片描述
    可以看到成功,通过扫码,很顺利就扫到hello。

    4.生成带背景图的二维码

    不过,这样的二维码实在是太普通了,我们可不可以在丰富下它的功能呢?答案当然是可以的。比方说我们给它加个背景图。

    在这里插入图片描述
    生成出来了,不过丑了点。

    5.生成带颜色的二维码

    我想着应该可以给二维码加点颜色。于是乎加了一句代码就生成了,简单来说就是一个参数就ok。

    它就是colorized,只要将它设为你True即可显示背景图的颜色,背景图有了颜色,自然二维码也会有。
    
    6.修改二维码大小

    看起来像那么回事了,不过这个二维码会不会太小了,给它整大点,通过查文档得知只需更改它的version值即可,有点想不通,version不是版本的意思吗,怎么到你那儿就成大小了?难道不是size吗,不管了,言归正传。
    在这里插入图片描述
    嗯嗯,现在有点像样了 。

    7.动态二维码生成

    其实我们在这里要想生成动态二维码也很简单,只需将生成类型和背景图片设置为gif即可。

    from MyQR import myqr
    myqr.run(words='hello',version=10,picture='12.gif',colorized=True,save_name='hello.gif',save_dir='./Game2')
    

    其实MyQr还可以通过命令行来操作生成二维码,但是我们Python程序员天生就很Python,所以还是Python好。

    通过对二维码的了解使我知道了它的神器之处,原来一个二维码如此简单就能生成出来,也惊叹世人的伟大与不朽。

    在这里还是要推荐下我自己建的Python开发技术交流qq群:810735403,群里都是学Python开发的,如果你正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴!

    展开全文
  • 怎样让这张二维码承载这么丰富的信息量,让不同终端的用户扫描同一个二维码能下载到对应的APP客户端呢? 方法①: 1. 首先需要一个中间页面,判断什么系统的设备扫描 2. 在iOS系统设备扫描时 如果微信...

    移动互联网发展迅速,各种APP的开发都会推出多个版本,比如:iPhone版、iPad版、Android版。对于应用提供方,希望入口只有一个:扫描二维码直接下载。怎样让这张二维码承载这么丰富的信息量,让不同终端的用户扫描同一个二维码能下载到对应的APP客户端呢?

     

    方法①:

     

    1. 首先需要一个中间页面,判断是什么系统的设备扫描

    2. 在iOS系统设备扫描时

    如果是微信扫描,因为第一步里使用了中间页面,此时无法直接跳转到App Store了,所以需要给出提示页面,提示用户点击右上角浏览器,以打开App Store下载页面

    如果是微信以外的其他App扫描,直接跳转到App Store下载页面

    3.在Android系统设备扫描时,如果是微信扫描,可以跳转到应用宝下载页面,或者可以给出提示页面,提示用户点击右上角浏览器打开,下载APK,如果是微信以外的其他App扫描,则直接跳转开始下载APK!

     

    方法②:

     

    安卓苹果二维码二合一,合并成为一个安卓手机苹果手机扫码都可以下载的二维码,这个需求相信很多朋友做APP推广的朋友都会有!但是这个要怎么实现呢?今天就给大家推荐一个安卓苹果二维码二合一扫描二维码自动识别手机系统(Android/IOS)的工具!

     

    第一步:打开平台地址:麦云二维码( http://www.tu10.cn)

    712460197bc09476.png

     

    第二步:点击网页中央的“立即合并”按钮!

    1373717635-a47d4c0e5c6fcce3_articlex.png

    第三步:扫码登录后,按照提示要求在后台填写好自己的苹果安卓(Android/IOS)地址。点击生成按钮即可!

    第四步:保存好生成的二维码,就可以去进行我们的推广了!

    开发了一款App,包括iOS及Android版,到了推广阶段,准备生成二维码让用户扫码下载,那这个二维码该怎么生成?iOS及Andorid各自生成一个二维码让用户区分下载?当然这种方式是可行的,但却增加了用户的使用成本!这个二维码的下载链接可以帮助我们解这些问题!如果大家发现还有更好能合成这种二维码的工具,也欢迎留言告诉我,互相交流!

    展开全文
  • 生成带参数的二维码目前有2种类型的二维码:1、临时二维码有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的...

    生成带参数的二维码

    目前有2种类型的二维码:

    1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
    2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。

    用户扫描带场景值二维码时,可能推送以下两种事件:

    如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。

    如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。

    获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。

    创建二维码ticket

    每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。

    临时二维码请求说明

    http请求方式: POST
    URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
    POST数据格式:json
    POST数据例子:{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
    
    或者也可以使用以下POST数据创建字符串形式的二维码参数:
    {"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
    

    永久二维码请求说明

    http请求方式: POST
    URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
    POST数据格式:json
    POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
    
    或者也可以使用以下POST数据创建字符串形式的二维码参数:
    {"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}

    正确的Json返回结果:返回说明

    {"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm
    3sUw==","expire_seconds":60,"url":"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI"}


    获取二维码ticket后,开发者可用ticket换取二维码图片。请注意,本接口无须登录态即可调用。通过ticket换取二维码

    具体代码如下:
    	public function qrcodeAdd(){
    		if(IS_GET){
    			$this->display('qrcode_add');
    		}else{
    			$mp = $this->mp;//获取正在使用的公众号
    			$arr = I('post.');
    			$arr['mpid'] = $mp['id'];
    			$id = M('qrcode')->add($arr);
    
    			include APP_PATH.'LaneWeChat/Lanewechat.php'; 
    			$ret=Popularize::createTicket($arr['qr_type'],$arr['expire'],$arr['scene_str']);
    			// $this->ajaxReturn($ret);
    			// exit;
    
    			if(isset($ret['ticket'])){
    				$ticket = $ret['ticket'];
    				$qrcodefile = Popularize::getQrcode($ticket);
    				// echo $qrcodefile;
    				// exit;
    				$ret['src'] = $qrcodefile;
    				$ret['create_time'] = time();
    				// dump($ret);
    				// exit;
    				M('qrcode')->where("id=$id")->save($ret);
    				$this->ajaxReturn(array('status'=>1,'msg'=>'ok','url'=>U('index')));
    			}else{
                    $this->ajaxReturn(array('status'=>1,'msg'=>$ret));
    			}
    		}
    		
    	}

    展开全文
  • java生成一维码和二维码

    千次阅读 2017-10-31 11:23:22
    这两天想了解一下二维码是怎样生成的。然后在网上看了很多资料,也有很多源码可以直接用的。我也没有自己写,也是拿着源码进行看和修改的,然后生成自己想要的二维码和一维码,还是很不错的,所以分享一下。 首先第...

    这两天想了解一下二维码是怎样生成的。然后在网上看了很多资料,也有很多源码可以直接用的。我也没有自己写,也是拿着源码进行看和修改的,然后生成自己想要的二维码和一维码,还是很不错的,所以分享一下。
    首先第一步,需要导入jar包,我把我用的jar包放上来吧

    jar包下载链接:http://download.csdn.net/download/qq_27790011/10046325

    将包导入好项目之后就可以开始写代码了,先来谈谈一个简单的生成二维码和一维码。想直接使用的可以复制代码之直接可以用。
    下面是MatrixUtil 类,全部生成一维码和二维码的方法都在里面,不过都是生成最简单的样式,样式可以自己修改。

    package com.zlf.qrcode2;
    
    import com.google.zxing.BarcodeFormat; 
    import com.google.zxing.BinaryBitmap; 
    import com.google.zxing.DecodeHintType; 
    import com.google.zxing.EncodeHintType; 
    import com.google.zxing.LuminanceSource; 
    import com.google.zxing.MultiFormatReader; 
    import com.google.zxing.MultiFormatWriter; 
    import com.google.zxing.Result; 
    import com.google.zxing.WriterException; 
    //import com.google.zxing.client.j2se.BufferedImageLuminanceSource; 
    import com.google.zxing.common.BitMatrix; 
    import com.google.zxing.common.HybridBinarizer; 
    
    import javax.imageio.ImageIO; 
    
    import java.io.File; 
    import java.io.OutputStream; 
    import java.io.IOException; 
    import java.util.Hashtable; 
    import java.awt.image.BufferedImage; 
    
    /**
     * 使用ZXing2.3,生成条码的辅助类。可以编码、解码。编码使用code包,解码需要javase包。
     */ 
    public final class MatrixUtil { 
    
        private static final String CHARSET = "utf-8"; 
        private static final int BLACK = 0xFF000000; 
        private static final int WHITE = 0xFFFFFFFF; 
    
        /**
         * 禁止生成实例,生成实例也没有意义。
         */ 
        private MatrixUtil() { 
        } 
    
        /**
         * 生成矩阵,是一个简单的函数,参数固定,更多的是使用示范。   
         * @param text
         * @return
         */ 
        public static BitMatrix toQRCodeMatrix(String text, Integer width, 
                Integer height) { 
            if (width == null || width < 300) { 
                width = 300; 
            } 
    
            if (height == null || height < 300) { 
                height = 300; 
            } 
            // 二维码的图片格式 
            Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); 
            // 内容所使用编码 
            hints.put(EncodeHintType.CHARACTER_SET, CHARSET); 
            BitMatrix bitMatrix = null; 
            try { 
                bitMatrix = new MultiFormatWriter().encode(text, 
                        BarcodeFormat.QR_CODE, width, height, hints); 
            } catch (WriterException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 
            // 生成二维码 
            // File outputFile = new File("d:"+File.separator+"new.gif"); 
            // MatrixUtil.writeToFile(bitMatrix, format, outputFile); 
            return bitMatrix; 
        } 
    
        /**
         * 将指定的字符串生成二维码图片。简单的使用示例。    
         * @param text
         * @param file
         * @param format
         * @return
         */ 
        public boolean toQrcodeFile(String text, File file, String format) { 
            BitMatrix matrix = toQRCodeMatrix(text, null, null); 
            if (matrix != null) { 
                try { 
                    writeToFile(matrix, format, file); 
                    return true; 
                } catch (IOException e) { 
                    // TODO Auto-generated catch block 
                    e.printStackTrace(); 
                } 
            } 
            return false; 
        } 
    
        /**
         * 根据点矩阵生成黑白图。 
         */ 
        public static BufferedImage toBufferedImage(BitMatrix matrix) { 
            int width = matrix.getWidth(); 
            int height = matrix.getHeight(); 
            BufferedImage image = new BufferedImage(width, height, 
                    BufferedImage.TYPE_INT_RGB); 
            for (int x = 0; x < width; x++) { 
                for (int y = 0; y < height; y++) { 
                    image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE); 
                } 
            } 
            return image; 
        } 
    
        /**
         * 将字符串编成一维条码的矩阵  
         * @param str
         * @param width
         * @param height
         * @return
         */ 
        public static BitMatrix toBarCodeMatrix(String str, Integer width, 
                Integer height) { 
    
            if (width == null || width < 200) { 
                width = 200; 
            } 
    
            if (height == null || height < 50) { 
                height = 50; 
            } 
    
            try { 
                // 文字编码 
                Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); 
                hints.put(EncodeHintType.CHARACTER_SET, CHARSET); 
    
                BitMatrix bitMatrix = new MultiFormatWriter().encode(str, 
                        BarcodeFormat.CODE_128, width, height, hints); 
    
                return bitMatrix; 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return null; 
        } 
    
        /**
         * 根据矩阵、图片格式,生成文件。
         */ 
        public static void writeToFile(BitMatrix matrix, String format, File file) 
                throws IOException { 
            BufferedImage image = toBufferedImage(matrix); 
            if (!ImageIO.write(image, format, file)) { 
                throw new IOException("Could not write an image of format " 
                        + format + " to " + file); 
            } 
        } 
    
        /**
         * 将矩阵写入到输出流中。
         */ 
        public static void writeToStream(BitMatrix matrix, String format, 
                OutputStream stream) throws IOException { 
            BufferedImage image = toBufferedImage(matrix); 
            if (!ImageIO.write(image, format, stream)) { 
                throw new IOException("Could not write an image of format " 
                        + format); 
            } 
        } 
    
        /**
         * 解码,需要javase包。
         * @param file
         * @return
         */ 
        /*public static String decode(File file) { 
    
            BufferedImage image; 
            try { 
                if (file == null || file.exists() == false) { 
                    throw new Exception(" File not found:" + file.getPath()); 
                } 
    
                image = ImageIO.read(file); 
    
                LuminanceSource source = new BufferedImageLuminanceSource(image); 
                BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); 
    
                Result result; 
    
                // 解码设置编码方式为:utf-8, 
                Hashtable hints = new Hashtable(); 
                hints.put(DecodeHintType.CHARACTER_SET, CHARSET); 
    
                result = new MultiFormatReader().decode(bitmap, hints); 
    
                return result.getText(); 
    
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
    
            return null; 
        } */
    } 
    

    接下来是Test测试类,代码更简单。

    package com.zlf.qrcode2;
    
    import java.io.File; 
    
    public class Test {   
    
        /**
         * 测试函数。简单地将指定的字符串生成二维码图片。
         */ 
        public static void main(String[] args) throws Exception {   
            String text = "1234567890";   
            String result; 
            String format = "jpg";   
            //生成二维码   
            File outputFile = new File("j:"+File.separator+"rqcode.jpg");   
            MatrixUtil.writeToFile(MatrixUtil.toQRCodeMatrix(text, null, null), format, outputFile);   
            System.out.println("success1");
            //result = MatrixUtil.decode(outputFile); 
            //System.out.println(result); 
              //生成条形码 
            outputFile = new File("j:"+File.separator+"barcode.jpg");   
            MatrixUtil.writeToFile(MatrixUtil.toBarCodeMatrix(text, null, null), format, outputFile); 
            System.out.println("success2");
            //result = MatrixUtil.decode(outputFile); 
            //System.out.println(result); 
        }   
    
    }   

    一维码和二维码效果图
    这里写图片描述

    这里写图片描述

    接下来主要讲一下二维码的生成吧,因为现在二维码比较火,动不动就手机扫一扫。为了制作一个稍微有特点的二维码。我另起了一个项目,不过jar包还是通用的。然后有这几个类。MatrixToImageWriter类QRCodeFactory类和测试类Qrest

    MatrixToImageWriter类主要的功能也是生成二维码图片

    package com.zlf.qrcode;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    import javax.imageio.ImageIO;
    import com.google.zxing.common.BitMatrix;
    
    /*
      二维码的生成需要借助MatrixToImageWriter类,该类是由Google提供的,可以将该类直接拷贝到源码中使用,当然你也可以自己写个
      生产条形码的基类
     */
    public class MatrixToImageWriter {
        private static final int BLACK = 0xFF000000;//用于设置图案的颜色
        private static final int WHITE = 0xFFFFFFFF; //用于背景色
    
        private MatrixToImageWriter() {
        }
    
        public static BufferedImage toBufferedImage(BitMatrix matrix) {
            int width = matrix.getWidth();
            int height = matrix.getHeight();
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    image.setRGB(x, y,  (matrix.get(x, y) ? BLACK : WHITE));
    //                image.setRGB(x, y,  (matrix.get(x, y) ? Color.YELLOW.getRGB() : Color.CYAN.getRGB()));
                }
            }
            return image;
        }
    
        public static void writeToFile(BitMatrix matrix, String format, File file,String logUri) throws IOException {
    
            System.out.println("write to file");
            BufferedImage image = toBufferedImage(matrix);
            //设置logo图标
            QRCodeFactory logoConfig = new QRCodeFactory();
            image = logoConfig.setMatrixLogo(image, logUri);
    
            if (!ImageIO.write(image, format, file)) {
                System.out.println("生成图片失败");
                throw new IOException("Could not write an image of format " + format + " to " + file);
            }else{
                System.out.println("图片生成成功!");
            }
        }
    
        public static void writeToStream(BitMatrix matrix, String format, OutputStream stream,String logUri) throws IOException {
    
            BufferedImage image = toBufferedImage(matrix);
    
            //设置logo图标
            QRCodeFactory logoConfig = new QRCodeFactory();
            image = logoConfig.setMatrixLogo(image, logUri);
    
            if (!ImageIO.write(image, format, stream)) {
                throw new IOException("Could not write an image of format " + format);
            }
        }
    }

    QRCodeFactory类的功能主要是编写自己特定制作,比如给二维码添加一个logo,给二维码添加文字说明。

    package com.zlf.qrcode;
    
    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics2D;
    import java.awt.geom.RoundRectangle2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.Hashtable;
    
    import javax.imageio.ImageIO;
    
    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;
    /**
     * 本类用于对我们二维码进行参数的设定,生成我们的二维码:
     * @author kingwen
     */
    public class QRCodeFactory {
    
        /**
         * 给生成的二维码添加中间的logo
         * @param matrixImage 生成的二维码
         * @param logUri      logo地址
         * @return            带有logo的二维码
         * @throws IOException logo地址找不到会有io异常
         */
         public BufferedImage setMatrixLogo(BufferedImage matrixImage,String logUri) throws IOException{
             /**
              * 读取二维码图片,并构建绘图对象
              */
             Graphics2D g2 = matrixImage.createGraphics(); 
             int matrixWidth = matrixImage.getWidth();
             int matrixHeigh = matrixImage.getHeight();
    
             /**
              * 读取Logo图片
              */
             BufferedImage logo = ImageIO.read(new File(logUri));
    
             //开始绘制图片
             g2.drawImage(logo,matrixWidth/5*2,matrixHeigh/5*2, matrixWidth/5, matrixHeigh/5, null);
             //绘制边框 
             BasicStroke stroke = new BasicStroke(5,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND); 
             // 设置笔画对象
             g2.setStroke(stroke);
             //指定弧度的圆角矩形
             RoundRectangle2D.Float round = new RoundRectangle2D.Float(matrixWidth/5*2, matrixHeigh/5*2, matrixWidth/5, matrixHeigh/5,20,20);
             g2.setColor(Color.white);
             // 绘制圆弧矩形
             g2.draw(round);
    
             //设置logo 有一道灰色边框
             BasicStroke stroke2 = new BasicStroke(1,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND); 
             // 设置笔画对象
             g2.setStroke(stroke2);
             RoundRectangle2D.Float round2 = new RoundRectangle2D.Float(matrixWidth/5*2+2, matrixHeigh/5*2+2, matrixWidth/5-4, matrixHeigh/5-4,20,20);
             g2.setColor(new Color(128,128,128));
             g2.draw(round2);// 绘制圆弧矩形
    
    
             Font font = new Font("Freestyle Script", Font.BOLD, 80);
             g2.setFont(font);
             g2.drawString("my love", matrixWidth/5*1+50, matrixHeigh/5*4-10);
    
    
             g2.dispose();
             matrixImage.flush() ;
             return matrixImage ;
    
         }
    
    
    
         /**
          * 创建我们的二维码图片
          * @param content            二维码内容
          * @param format             生成二维码的格式
          * @param outFileUri         二维码的生成地址
          * @param logUri             二维码中间logo的地址
          * @param size               用于设定图片大小(可变参数,宽,高)
          * @throws IOException       抛出io异常
          * @throws WriterException   抛出书写异常
          */
         public  void CreatQrImage(String content,String format,String outFileUri,String logUri, int ...size) throws IOException, WriterException{
    
    
            int width = 430; // 二维码图片宽度 430 
             int height = 430; // 二维码图片高度430    
    
             //如果存储大小的不为空,那么对我们图片的大小进行设定
            if(size.length==2){
            width=size[0];
            height=size[1];
            }else if(size.length==1){
               width=height=size[0];
            }
    
    
             Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
              // 指定纠错等级,纠错级别(L 7%、M 15%、Q 25%、H 30%)
             hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
             // 内容所使用字符集编码
             hints.put(EncodeHintType.CHARACTER_SET, "utf-8");    
            //hints.put(EncodeHintType.MAX_SIZE, 350);//设置图片的最大值
            //hints.put(EncodeHintType.MIN_SIZE, 100);//设置图片的最小值
             hints.put(EncodeHintType.MARGIN, 1);//设置二维码边的空度,非负数
    
             BitMatrix bitMatrix = new MultiFormatWriter().encode(content,//要编码的内容
                     //编码类型,目前zxing支持:Aztec 2D,CODABAR 1D format,Code 39 1D,Code 93 1D ,Code 128 1D,
                     //Data Matrix 2D , EAN-8 1D,EAN-13 1D,ITF (Interleaved Two of Five) 1D,
                     //MaxiCode 2D barcode,PDF417,QR Code 2D,RSS 14,RSS EXPANDED,UPC-A 1D,UPC-E 1D,UPC/EAN extension,UPC_EAN_EXTENSION
                     BarcodeFormat.QR_CODE,
                     width, //条形码的宽度
                     height, //条形码的高度
                     hints);//生成条形码时的一些配置,此项可选
    
             // 生成二维码图片文件
             File outputFile = new File(outFileUri);
    
             //指定输出路径    
             System.out.println("输出文件路径为"+outputFile.getPath());
    
             MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile,logUri);
         }   
    }
    

    接下来就是测试Qrest类了,

    package com.zlf.qrcode;
    
    
    import java.io.IOException;
    
    import com.google.zxing.WriterException;
    
    public class Qrest {
    
        public static void main(String[] args) {
    
            String content="我莫名奇妙的笑了,只因为想到了你。";
           String logUri="J:/logs/1.jpg"; //J:\\logs\\author.jpg
           String outFileUri="J:/logs/qtCode1.jpg";
           int[]  size=new int[]{430,430};
           String format = "jpg";  
    
           try {
            new QRCodeFactory().CreatQrImage(content, format, outFileUri, logUri,size);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (WriterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
      }
    
    }
    

    这些代码也可以直接复制直接使用的。,现在给看一下我做出来的效果图。
    将自己的个人blog制作成二维码

    参考的文章比较多,现在也记不得网址了,就不粘出来了,如果有侵权的联系我删除。

    展开全文
  • 二维码代码生成

    2017-03-21 12:09:08
    该文章关于java中怎样生成二维码的代码实现,很详细的!希望可以帮助大家!
  • <p style="text-align:center"><img alt="" height="1404" src="https://img-ask.csdnimg.cn/upload/1607783070170.jpg" width="1125" /></p>  </p>
  • 首先我们打开maipdf的网站,因为市场上做pdf...生成后的链接会自带一个阅读的二维码,只要扫一扫您就可以打开看到您的pdf文件,并且在改页面下,pdf文件不能复制,打印和下载的。100%安全的pdf文件分享网站。 ...
  • 支付宝目前已有此功能,通过扫描以下代码生成的二维码,就可以直接跳到转账到银行卡页面,并将收款人姓名账号银行自动填写好。代码如下:【alipays://platformapi/startapp?appId=09999988&actionType=toCard&...
  • 大多数扫一扫都在微信上操作的,但是因为微信屏蔽了一些功能,我也做了好几次的尝试,希望直接扫二维码就跳到apk包的下载或是跳到苹果商店,但是效果都不好。 对于用户来说,扫一次就成功最重要的,所以后来...
  • php生成 二维码

    2015-12-06 11:27:17
    一、什么是二维码  随着科技的发展,智能手机越来越普及,QR码(二维码)的使用也越来越多了。利用手机的拍照功能,再加上一些QR码识别软件,可以通过二维码来记录一些比较...二、怎样利用Google API生成二维码
  • java生成两种二维码

    千次阅读 热门讨论 2016-12-27 15:27:44
     在这篇博客中关于二维码的基本原理先不做介绍,先介绍我们怎样利用java语言实现二维码生成,现在二维 码在我们生活中已经非常常见了,一言不合就扫码!所以对于我们这帮程序猿来说,需要研究一把这个东西...
  • 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,一个近几年来移动设备上...这种产品二维码由条码打印软件制作出来的,可以存在手机上,也可以制作生成标签来使用,本文为大家讲述其制作方...
  • 一:先说怎样生成二维码? 1.可以百度“草料二维码”,可以利用网站生成二维码。前提要输入一个URL,才可以生成这个二维码; 2.此URL就是 https://open.weixin.qq.com/connect/oauth2/auth...
  • 利用Google API快速生成QR二维码

    千次阅读 2012-02-02 10:39:49
    昨天发现很多网站都贴上了自己网址的二维码,我觉得这样挺有意思的,就研究了一下怎样生成二维码。结果发现,现在来说生成二维码最简单的方法使用Google Chart API来实现,再次膜拜Google大神~ Google Chart API...
  • 但通常我们都去扫二维码,曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人。这里就分享一下基于Go语言+Google图表API提供二维码生成功能的小应用,并演示怎样把它...
  • 一、生成参数二维码 1.在浏览器里搜索小蚂蚁编辑器进入官网首页,点击“公众号授权”绑定自己的微信公众号。 2.绑定完成以后,在“微信公众号”栏目下,点击“参数二维码”。 3.在跳转后的页面中,点击“创建...
  • 区块链爱好者(QQ:53016353) 数字货币的qt钱包、multbit钱包,blockchain在线...在“请求”页面,我们可以生成二维码,例如,所示二维码的扫描结果bitcoin:1KZgtUrWZGuAmjRR8HEeuZtMGT3Wqutc1a?amount=1&label=
  • 二维码的制作与识别使用了什么技术,有哪些优缺点,发展前景是怎样的? 我们通常只需要使用在线二维码生成器就可以制作二维码,但你知道它是怎么制作的吗?具体来讲,它所使用的技术就是计算机图像处理技术,在线...
  • weixin://wxpay/bizpayurl?pr=fQrYYGd像这种支付二维码链接微信内才能打开怎么才能做到单独跳转 ...微信支付生成一个二维码进行识别支付,但是,现在的需求,不需要用户扫码,生成此地址后用js直接跳转但是跳...
  • 生成的二维码是一个网页的链接,应用打开网页的时候,是在该应用打开的该网页,网页通过检测打开网页的应用的标识进行分辨,如果是微信支付就跳转的微信的支付接口,如果只支付宝就跳转到支付宝的支付接口
  • php与二维码

    2015-12-09 10:23:50
    一、什么是二维码  随着科技的发展,智能手机越来越普及,QR码(二维码)的使用也越来越多了。利用手机的拍照功能,再加上一些QR码识别软件,可以通过二维码来记录一些比较...二、怎样利用Google API生成二维码
  • 一线大厂的分布式唯一 ID 生成方案是怎样的?

    多人点赞 热门讨论 2020-06-09 08:39:00
    长按识别下方二维码,即可"关注"公众号每天早晨,干货准时奉上!本文作者::老顾聊技术来源:toutiao.com/i6682672464708764174一、前言分布...
  • 01免费的公文写作AI看过《秘书工作手记2:怎样写出好公文》的筒子们或许有察觉,石头对一切“投机取巧”的写材料方式,都抱有浓厚的兴趣,一切公文写作领域的工具创新,都会刺激我敏感的神经。比如,搜索引擎、资料...
  • 有做过移动端的大师吗 请问下 我现在和朋友搞个项目 我做后台(java,springMVC框架),他做移动端(安卓和ios),其中有个移动端提供二维码扫描功能(类似于qq...移动端和后台在这个功能中的分工是怎样的 ,谢谢了
  • 怎样在我们Android项目中扫描识别二维码生成二维码图片呢? 我们通常使用的开源框架zxing。在github上的开源地址:https://github.com/zxing/zxing,眼下在做的项目中也用到这个框架, 所以自己做了个demo,...

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

二维码是怎样生成的