精华内容
下载资源
问答
  • Java生成二维码图片

    2018-02-01 15:40:42
    Java代码直接生成专属二维码图片二维码图片解析。Web前端二维码以图片显示。生成二维码可以用维修,QQ,支付宝等扫一扫可以直接访问。
  • 详细教程:https://blog.csdn.net/wysnxzm/article/details/83305036
  • java生成二维码

    2017-12-20 10:51:59
    java生成二维码的demo,可以下载直接运行,并已经测试通过
  • java 使用zxing生成二维码(带logo和文字说明)已经封装 使用起来很方便 下载下来直接调用传入参数就可以
  • java生成二维码
  • pom文件引入google 二维码工具包依赖 <!-- 二维码 --> <dependency> <groupId>com.google.zxing</groupId> <...java生成二维码图片和解析二维码图片内容代码..

     pom文件引入google 二维码工具包依赖

           <!-- 二维码 -->
    		<dependency>
    			<groupId>com.google.zxing</groupId>
    			<artifactId>core</artifactId>
    			<version>3.3.0</version>
    		</dependency>

    java生成二维码图片和解析二维码图片内容代码 

    
    import cn.hutool.extra.qrcode.BufferedImageLuminanceSource;
    import com.google.zxing.*;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.common.HybridBinarizer;
    import com.tarzan.reptile.utils.SmartBeanUtil;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Map;
    
    public class QrCodeUtil {
    
        private static final int BLACK = 0xFF000000;
        private static final int WHITE = 0xFFFFFFFF;
    
        //视频保存目录
        private static final String qrCodeSavePath = "d:/二维码/";
    
        public static void main(String[] args) {
            String text = "https://www.baidu.com/";
            try {
                //生成二维码图片
                String pathName = generateQRCode(text);
                System.out.println("生成二维码的图片存放路径: " + pathName);
                //解析二维码图片
                String content = parseQRCode(pathName);
                System.out.println("解析内容为: " + content);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 生成二维码图片
         *
         * @param text
         * @return
         */
        public static String generateQRCode(String text) throws Exception {
            return generateQRCode(text, 300, 300, "jpg", qrCodeSavePath + SmartBeanUtil.genUUID() + ".jpg");
        }
    
        /**
         * 解析指定路径下的二维码图片
         *
         * @param filePath
         * @return
         */
        private static String parseQRCode(String filePath) {
            String content = "";
            try {
                File file = new File(filePath);
                BufferedImage image = ImageIO.read(file);
                LuminanceSource source = new BufferedImageLuminanceSource(image);
                Binarizer binarizer = new HybridBinarizer(source);
                BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
                Map<DecodeHintType, Object> hints = new HashMap<>();
                hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
                MultiFormatReader formatReader = new MultiFormatReader();
                Result result = formatReader.decode(binaryBitmap, hints);
                //设置返回值
                content = result.getText();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return content;
        }
    
    
        /**
         * 根据内容,生成指定宽高、指定格式的二维码图片
         *
         * @param text   内容
         * @param width  宽
         * @param height 高
         * @param format 图片格式
         * @return 生成的二维码图片路径
         * @throws Exception
         */
        public static String generateQRCode(String text, int width, int height, String format, String pathName) throws Exception {
            Hashtable<EncodeHintType, Object> hints = new Hashtable<>();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);
            File outputFile = new File(pathName);
            if (!outputFile.exists()) {
                outputFile.mkdirs();
            }
            writeToFile(bitMatrix, format, outputFile);
            return pathName;
        }
    
        //输出为文件
        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("文件写入异常");
            }
        }
    
        //输出为流
        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("文件写入异常");
            }
        }
    
        //缓冲图片
        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;
        }
    
    
    }
    

    控制台输出

    生成二维码图片效果

    展开全文
  • java生成二维码图片

    2018-05-17 15:54:06
    java生成二维码图片package com.util; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.util.Base64; import java....

    java生成二维码图片

    package com.util;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.IOException;
    import java.util.Base64;
    import java.util.HashMap;
    import java.util.Map;
    
    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.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    
    public class QrServiceTest {
    	
    	// 二维码颜色
    	private static final int BLACK = 0xFF000000;
    	// 二维码颜色
    	private static final int WHITE = 0xFFFFFFFF;
    
    	public static void main(String[] args) throws Exception {
    		String zString = zxingCodeCreate("www.baidu.com", 300, 300, "D:\\qrcode.jpg", "jpg");
    		System.out.println(zString);
    	}
    
    	/**
    	 * 生成二维码
    	 * 
    	 * @param text
    	 *            二维码内容
    	 * @param width
    	 *            二维码宽
    	 * @param height
    	 *            二维码高
    	 * @param outPutPath
    	 *            二维码生成保存路径
    	 * @param imageType
    	 *            二维码生成格式
    	 */
    	public static String zxingCodeCreate(String text, int width, int height, String outPutPath, String imageType) {
    		Map<EncodeHintType, String> his = new HashMap<EncodeHintType, String>();
    		// 设置编码字符集
    		his.put(EncodeHintType.CHARACTER_SET, "utf-8");
    		try {
    			// 1、生成二维码
    			BitMatrix encode = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, his);
    
    			// 2、获取二维码宽高
    			int codeWidth = encode.getWidth();
    			int codeHeight = encode.getHeight();
    
    			// 3、将二维码放入缓冲流
    			BufferedImage image = new BufferedImage(codeWidth, codeHeight, BufferedImage.TYPE_INT_RGB);
    			for (int i = 0; i < codeWidth; i++) {
    				for (int j = 0; j < codeHeight; j++) {
    					// 4、循环将二维码内容定入图片
    					image.setRGB(i, j, encode.get(i, j) ? BLACK : WHITE);
    				}
    			}
    			
    			// 生成二维码图片  
    	        File outputFile = new File(outPutPath);//指定输出路径  
    	        MatrixToImageWriter.writeToFile(encode, imageType, outputFile);
    			
    			ByteArrayOutputStream out = new ByteArrayOutputStream();
    			ImageIO.write(image, "jpg", out);
    			byte[] imageBytes = out.toByteArray();
    			String base64String = Base64.getEncoder().encodeToString(imageBytes);
    			return "data:image/jpg;base64," + base64String;
    		} catch (WriterException e) {
    			e.printStackTrace();
    			System.out.println("二维码生成失败");
    		} catch (IOException e) {
    			e.printStackTrace();
    			System.out.println("生成二维码图片失败");
    		}
    		return null;
    	}
    }
    



    展开全文
  • 直接Ctrl C/V可用 用的是QrCode-3.0.jar ...import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java...

    直接Ctrl C/V可用
    用的是QrCode-3.0.jar
    联系我发给你,邮箱:ziho.c@qq.com
    Java代码

    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    
    import com.swetake.util.Qrcode;
     
    /**
     * 生成二维码工具
     * @author ziho
     *
     */
    public class QRcodeUtil {
    
    	public static void main(String[] args) throws IOException {
    		createQrCode("SN3AAA9010028",1);
    		//ImageUtil.changeSize(30, 30, createQrCode("SN3AAA9010028",1));
            
        }
    	
    	public static String createQrCode(String data,int level) throws IOException {
    		//计算二维码图片的高宽比
            // API文档规定计算图片宽高的方式 ,v是本次测试的版本号
            int v =1;
            int width = 21*level;
            int height = 21*level;
    
    
            Qrcode x = new Qrcode();
            /**
             * 纠错等级分为
             * level L : 最大 7% 的错误能够被纠正;
             * level M : 最大 15% 的错误能够被纠正;
             * level Q : 最大 25% 的错误能够被纠正;
             * level H : 最大 30% 的错误能够被纠正;
             */
            x.setQrcodeErrorCorrect('L');
            x.setQrcodeEncodeMode('B');//注意版本信息 N代表数字 、A代表 a-z,A-Z、B代表 其他)
            x.setQrcodeVersion(v);//版本号  1-40
            String qrData = data;//内容信息
    
            byte[] d = qrData.getBytes("utf-8");//汉字转格式需要抛出异常
            System.out.println(d.length);
    
            //缓冲区
            BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
    
            //绘图
            Graphics2D gs = bufferedImage.createGraphics();
    
            gs.setBackground(Color.WHITE);
            gs.setColor(Color.BLACK);
            gs.clearRect(0, 0, width, height);
    
            //偏移量
            int pixoff = 0;
    
    
            /**
             * 容易踩坑的地方
             * 1.注意for循环里面的i,j的顺序,
             *   s[j][i]二维数组的j,i的顺序要与这个方法中的 gs.fillRect(j*3+pixoff,i*3+pixoff, 3, 3);
             *   顺序匹配,否则会出现解析图片是一串数字
             * 2.注意此判断if (d.length > 0 && d.length < 120)
             *   是否会引起字符串长度大于120导致生成代码不执行,二维码空白
             *   根据自己的字符串大小来设置此配置
             */
            if (d.length > 0 && d.length < 100) {
                boolean[][] s = x.calQrcode(d);
    
                for (int i = 0; i < s.length; i++) {
                    for (int j = 0; j < s.length; j++) {
                        if (s[j][i]) {
                            gs.fillRect(j * level + pixoff, i * level + pixoff, level, level);
                        }
                    }
                }
            }
            gs.dispose();
            bufferedImage.flush();
            //设置图片格式,与输出的路径
            String path = "C:/"+ConstantUtil.PATH+"/print/code.png";
            ImageIO.write(bufferedImage, "png", new File(path));
            System.out.println("二维码生成完毕");
            return path;
    	}
    }
    
    
    
    展开全文
  • java生成二维码_java将二维码转换成base64
  • } /** * 解析二维码(QRCode) * @param imgPath 图片路径 * @return */ public String decoderQRCode(String imgPath) { // QRCode 二维码图片的文件 File imageFile = new File(imgPath); BufferedImage ...
    package com.zhangtao.common.twodimension;
     
    import com.swetake.util.Qrcode;
    import jp.sourceforge.qrcode.QRCodeDecoder;
    import jp.sourceforge.qrcode.exception.DecodingFailedException;
     
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    public class TwoDimensionCode {
    
    /**
     * 生成二维码(QRCode)图片
     * @param content 存储内容
     * @param imgPath 图片路径
     */
    public void encoderQRCode(String content, String imgPath) {
    	this.encoderQRCode(content, imgPath, "png", 7);
    }
    
    /**
     * 生成二维码(QRCode)图片
     * @param content 存储内容
     * @param output 输出流
     */
    public void encoderQRCode(String content, OutputStream output) {
    	this.encoderQRCode(content, output, "png", 7);
    }
    
    /**
     * 生成二维码(QRCode)图片
     * @param content 存储内容
     * @param imgPath 图片路径
     * @param imgType 图片类型
     */
    public void encoderQRCode(String content, String imgPath, String imgType) {
    	this.encoderQRCode(content, imgPath, imgType, 7);
    }
    
    /**
     * 生成二维码(QRCode)图片
     * @param content 存储内容
     * @param output 输出流
     * @param imgType 图片类型
     */
    public void encoderQRCode(String content, OutputStream output, String imgType) {
    	this.encoderQRCode(content, output, imgType, 7);
    }
    
    /**
     * 生成二维码(QRCode)图片
     * @param content 存储内容
     * @param imgPath 图片路径
     * @param imgType 图片类型
     * @param size 二维码尺寸
     */
    public void encoderQRCode(String content, String imgPath, String imgType, int size) {
    	try {
    		BufferedImage bufImg = this.qRCodeCommon(content, imgType, size);
    		
    		File imgFile = new File(imgPath);
    		// 生成二维码QRCode图片
    		ImageIO.write(bufImg, imgType, imgFile);
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    }
    
    /**
     * 生成二维码(QRCode)图片
     * @param content 存储内容
     * @param output 输出流
     * @param imgType 图片类型
     * @param size 二维码尺寸
     */
    public void encoderQRCode(String content, OutputStream output, String imgType, int size) {
    	try {
    		BufferedImage bufImg = this.qRCodeCommon(content, imgType, size);
    		// 生成二维码QRCode图片
    		ImageIO.write(bufImg, imgType, output);
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    }
    
    /**
     * 生成二维码(QRCode)图片的公共方法
     * @param content 存储内容
     * @param imgType 图片类型
     * @param size 二维码尺寸
     * @return
     */
    public BufferedImage qRCodeCommon(String content, String imgType, int size) {
    	BufferedImage bufImg = null;
    	try {
    		Qrcode qrcodeHandler = new Qrcode();
    		// 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小
    		qrcodeHandler.setQrcodeErrorCorrect('M');
    		qrcodeHandler.setQrcodeEncodeMode('B');
    		// 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大
    		qrcodeHandler.setQrcodeVersion(size);
    		// 获得内容的字节数组,设置编码格式
    		byte[] contentBytes = content.getBytes("utf-8");
    		// 图片尺寸
    		int imgSize = 67 + 12 * (size - 1);
    		bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_RGB);
    		Graphics2D gs = bufImg.createGraphics();
    		// 设置背景颜色
    		gs.setBackground(Color.white);
    		gs.clearRect(0, 0, imgSize, imgSize);
    
    		// 设定图像颜色> BLACK
    		gs.setColor(Color.BLACK);
    		// 设置偏移量,不设置可能导致解析出错
    		int pixoff = 2;
    		// 输出内容> 二维码
    		if (contentBytes.length > 0 && contentBytes.length < 800) {
    			boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
    			for (int i = 0; i < codeOut.length; i++) {
    				for (int j = 0; j < codeOut.length; j++) {
    					if (codeOut[j][i]) {
    						gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
    					}
    				}
    			}
    		} else {
    			throw new Exception("QRCode content bytes length = " + contentBytes.length + " not in [0, 800].");
    		}
    		gs.dispose();
    		bufImg.flush();
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    	return bufImg;
    }
    
    /**
     * 解析二维码(QRCode)
     * @param imgPath 图片路径
     * @return
     */
    public String decoderQRCode(String imgPath) {
    	// QRCode 二维码图片的文件
    	File imageFile = new File(imgPath);
    	BufferedImage bufImg = null;
    	String content = null;
    	try {
    		bufImg = ImageIO.read(imageFile);
    		QRCodeDecoder decoder = new QRCodeDecoder();
    		content = new String(decoder.decode(new TwoDimensionCodeImage(bufImg)), "utf-8");
    	} catch (IOException e) {
    		System.out.println("Error: " + e.getMessage());
    		e.printStackTrace();
    	} catch (DecodingFailedException dfe) {
    		System.out.println("Error: " + dfe.getMessage());
    		dfe.printStackTrace();
    	}
    	return content;
    }
    
    /**
     * 解析二维码(QRCode)
     * @param input 输入流
     * @return
     */
    public String decoderQRCode(InputStream input) {
    	BufferedImage bufImg = null;
    	String content = null;
    	try {
    		bufImg = ImageIO.read(input);
    		QRCodeDecoder decoder = new QRCodeDecoder();
    		content = new String(decoder.decode(new TwoDimensionCodeImage(bufImg)), "utf-8"); 
    	} catch (IOException e) {
    		System.out.println("Error: " + e.getMessage());
    		e.printStackTrace();
    	} catch (DecodingFailedException dfe) {
    		System.out.println("Error: " + dfe.getMessage());
    		dfe.printStackTrace();
    	}
    	return content;
    }
    
    public static void main(String[] args) {
    /*
    	String imgPath = "G:/twoDim/Michael_QRCode.png";
    //		String encoderContent = "Hello 大大、小小,welcome to QRCode!" + "\nMyblog [ http://sjsky.iteye.com ]" + "\nEMail [ sjsky007@gmail.com ]";
    	String encoderContent = "http://localhost:8080/";
    	TwoDimensionCode handler = new TwoDimensionCode();
    	handler.encoderQRCode(encoderContent, imgPath, "png");
    //		try {
    //			OutputStream output = new FileOutputStream(imgPath);
    //			handler.encoderQRCode(content, output);
    //		} catch (Exception e) {
    //			e.printStackTrace();
    //		}
    	System.out.println("========encoder success");
    	
    	String decoderContent = handler.decoderQRCode(imgPath);
    	System.out.println("解析结果如下:");
    	System.out.println(decoderContent);
    	System.out.println("========decoder success!!!");
    	*/
    	}
    }
    
    展开全文
  • 主要介绍了Java生成二维码可添加logo和文字功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • // 生成二维码 文件地址 是否存在不存在则新增 File outputFile = new File(path); if(!outputFile.getParentFile().exists()){ outputFile.getParentFile().mkdirs(); } if(!outputFile.exists()){ output...
  • // 生成二维码,传入二维码对象、生成图片的格式、生成的路径 MatrixToImageWriter.writeToPath(bitMatrix, type, file); } catch (WriterException e) { e.printStackTrace(); } catch (IOException e) { e....
  • java生成二维码所需要的jar包,包含qrcode.jar和qrcode_swetake.jar,内含使用方法。
  • 调用 //调用 //data是要存的数据,filePath2是二维码的存储路径,后面两个参数分别表示生产的图片样式和在二维码底部添加的... //执行生成二维码 封装方法 // 二维码宽度 private final static int QRCODE_WIDTH...
  • java 生成二维码图片

    千次阅读 2019-06-19 14:16:49
    需下载jar jar路径:http://files.cnblogs.com/files/liaolongjun/qrcode.zip ... import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.Output...
  • 支持maven引入依赖生成二维码,自带工具类,支持生成二维码到本地,也可以转成base64字符串(前端轻松解析),写好了强大的工具类,总有一个适合你的。。。。。
  • 直接用java生成二维码,可以设置二维码的颜色、大小、识别精度;以及生成二维码到文件、IO流等
  • 主要为大家详细介绍了java实现批量生成二维码的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java生成二维码源代码

    2018-09-28 16:25:00
    java生成二维码源代码
  • logo配置类 /** * Created by Amber Wang on 2017/11/27 17:... */import java.awt.*;public class LogoConfig { // logo默认边框颜色 public static final Color DEFAULT_BORDERCOLOR = Color.WHITE; // logo默认
  • 该资源为java生成二维码,可调整二维码大小,排版,密度,设置图片头像

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,181
精华内容 14,072
关键字:

java生成二维码图片

java 订阅