精华内容
下载资源
问答
  • zxing生成bitmap方式,及bitmap优化释放内存
    千次阅读
    2017-01-09 15:38:58

    关于使用 zxing 识别二维码还是很简单的,导入 zxing 后,一句 intent 跳转就可以了。那么如何用 zxing 生成二维码呢?其实也不难。

    我导入的是 zxing-core 依赖包。代码如下:


    try {
        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
        BitMatrix result = multiFormatWriter.encode("
    Hello RQ_code!
    ", BarcodeFormat.QR_CODE, 200, 200);
        int width = result.getWidth();
        int height = result.getHeight();
        int[] pixels = new int[width * height];
        for (int y = 0; y < height; y++) {
            int offset = y * width;
            for (int x = 0; x < width; x++) {
                pixels[offset + x] = result.get(x, y) ? Color.BLACK : Color.WHITE;
            }
        }
        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 可能会太占内存
        bitmap.setPixels(pixels, 0, 100, 0, 0, width, height);


    生成了 二维码 的 bitmap

    ARGB.8888 可不是小的内存呀,如果需要多个这样的就崩了,所以需要及时的释放掉 bitmap。下面的代码添在后面就可以了:

    bitmap.recycle();
        bitmap = null;
    // 其实这句已经是废话了,习惯性的


    更多相关内容
  • package com.study.zxing; import java.io.File; import java.nio.file.Path; import java.util.HashMap; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import ...
    package com.study.zxing;
    
    import java.io.File;
    import java.nio.file.Path;
    import java.util.HashMap;
    
    
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    
    public class ZxingTest {
    
    	public static void main(String[] args) {
    		int width = 600;
    		int height = 600;
    		//文件格式
    		String format = "png";
    		//二维码内容
    		String content = "www.baidu.com";
    		
    		//定义二维码参数
    		
    		HashMap hints = new HashMap();
    		//编码显示中文
    		hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
    		//规避错误大小
    		hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
    		//页面大小宽度
    		hints.put(EncodeHintType.MARGIN, 2);
    		
    		try {
    			//生成二维码
    			BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height,hints);
    			//生成路径
    			Path file = new File("F:/JAVA/study_pro/QRCode/QRCode.png").toPath();
    			MatrixToImageWriter.writeToPath(bitMatrix, format, file);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		
    	}
    
    }
    

     https://share.weiyun.com/5OigXSR (密码:U7wf)

    文件如要引入的jar包






    二维码解析:

    package com.study.zxing;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.util.HashMap;
    
    import javax.imageio.ImageIO;
    
    import com.google.zxing.BinaryBitmap;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatReader;
    import com.google.zxing.NotFoundException;
    import com.google.zxing.Result;
    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
    import com.google.zxing.common.HybridBinarizer;
    
    
    public class DecodeQRCode {
    
    	public static void main(String[] args) throws Exception {
    		//生成解析对象
    		MultiFormatReader multiFormatReader = new MultiFormatReader();
    		//要解析的文件路径
    		File file = new File("F:/JAVA/study_pro/QRCode/QRCode.png");
    		BufferedImage bufferedImage = ImageIO.read(file);
    		BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage)));
    		//定义二维码参数
    		HashMap hints = new HashMap();
    		//编码显示中文
    		hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
    		Result result=  multiFormatReader.decode(binaryBitmap,hints);
    		
    		System.out.println("二维码解析:"+result.toString());
    		System.out.println("二维码类型:"+result.getBarcodeFormat());
    		System.out.println("二维码文本:"+result.getText());
    
    	}
    
    }
    

    展开全文
  • zxing和QRCode 生成解析二维码

    千次阅读 2019-04-14 10:35:03
    zxing和QRCode都是用来生成和解析二维码的工具 QRCode:是有日本Demso公司于1994年研制的一种矩阵二维码符号码 zxing:老美的(个人更喜欢这个) 桌面或Web应用建议采用QRCode,Android应用建议采用zxing 不说...

    zxing和QRCode都是用来生成和解析二维码的工具

    QRCode:是有日本Demso公司于1994年研制的一种矩阵二维码符号码

    zxing:老美的(个人更喜欢这个)

    桌面或Web应用建议采用QRCode,Android应用建议采用zxing

    不说废话,直接来

    1.QRCode

    引入maven (我引入了依赖后没办法在线下载这个包,只好自己去下载jar包后,放到本地maven库,然后再maven依赖导入)

    这里放一个QRCode.jar的链接(内含使用教程)

    <dependency>
         <groupId>QRCode</groupId>
         <artifactId>QRCode</artifactId>
         <version>3.0</version>
    </dependency>

    QRCode工具类(传进logo的参数有值就是生成带logo的二维码,传入logo参数为空值的就是生成不带logo的二维码)

    package com.liqiye.springbootdemo.utils;
     
    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.UnsupportedEncodingException;
    
    import javax.imageio.ImageIO;
    
    import com.swetake.util.Qrcode;
    import jp.sourceforge.qrcode.QRCodeDecoder;
    import jp.sourceforge.qrcode.data.QRCodeImage;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    /**
     * @author liqiye
     * @description QRCode二维码工具类 ,实现输入字符串(文本,网址)生成对应的二维码二维码,具有4个等级的容错能力
     * @date 2019/4/13
     */
    public class QRCodeUtils {
    
    	private static final Logger log = LoggerFactory.getLogger(QRCodeUtils.class);
    
    	/**
    	 * 二维码可包含的内容
    	 */
    	public class EncodeMode{
    
    		// N代表的是数字
    		public final static char N = 'N';
    
    		// A代表的是a-z
    		public final static char A= 'A';
    
    		// B代表的是其他字符
    		public final static char B = 'B';
    	}
    	
    	/**
    	 * 二维码的容错能力等级
    	 * 二维码容错率用字母表示,容错能力等级分为:L、M、Q、H四级
    	 * 二维码具有容错功能,当二维码图片被遮挡一部分后,仍可以扫描出来。
    	 * 容错的原理是二维码在编码过程中进行了冗余,就像是123被编码成123123,这样只要扫描到一部分二维码图片,
    	 * 二维码内容还是可以被全部读到。
    	 * 二维码容错率即是指二维码图标被遮挡多少后,仍可以被扫描出来的能力。容错率越高,则二维码图片能被遮挡的部分越多。
    	 */
    	public class ErrorCorrect{
    
    		// 低,最大 7% 的错误能够被纠正
    		public final static char L = 'L';
    
    		// 中,最大 15% 的错误能够被纠正
    		public final static char M = 'M';
    
    		// 中上,最大 25% 的错误能够被纠正
    		public final static char Q = 'Q';
    
    		// 高,最大 30% 的错误能够被纠正
    		public final static char H = 'H';
    	}
    	
    	/**
    	 * 基于 QRCode 生成二维码
    	 * @param content 要写入二维码的内容
    	 * @param savePath 完整的保存路径
    	 * @param version 版本
    	 * @param logoPath 完整的logo路径,如果为null或者"",就是不设置logo
    	 * @return 是否生成二维码图片成功
    	 */
    	public static boolean createQRCode(String content, String savePath, int version, String logoPath){
    		// 创建生成二维码的对象
            Qrcode qrcode = new Qrcode();
            // 设置二维码的容错能力等级
            qrcode.setQrcodeErrorCorrect(ErrorCorrect.M);
            // N代表的是数字,A代表的是a-z,B代表的是其他字符
            qrcode.setQrcodeEncodeMode(EncodeMode.B);
            // 版本
            qrcode.setQrcodeVersion(version);
            // 设置验证码的大小
            int width = 67 + 12 * (version - 1);
            int height = 67 + 12 * (version - 1);
            // 定义缓冲区图片
            BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            // 设置画图工具
            Graphics2D gs = bufferedImage.createGraphics();
            // 设置二维码背景颜色
            gs.setBackground(Color.white);//lightGray
            // 设置颜色
            gs.setColor(Color.black);//cyan,green,red,black,pink
            // 清除画板内容
            gs.clearRect(0, 0, width, height);
            // 定义偏移量
            int pixoff = 2;
     
            // 填充的内容转化为字节数
            byte[] ctt;
    		try {
    			ctt = content.getBytes("utf-8");
    			// 设置编码方式
    	        if (ctt.length > 0 && ctt.length < 120) {
    	            boolean[][] s = qrcode.calQrcode(ctt);
    	            for (int i = 0; i < s.length; i++) {
    	                for (int j = 0; j < s.length; j++) {
    	                    if (s[j][i]) {
    	                        // 验证码图片填充内容
    	                        gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
    	                    }
    	                }
    	            }
    	        }
    	        /* 判断是否需要添加logo图片 */
                if(logoPath != null && !"".equals(logoPath)){
                    File icon = new File(logoPath);
                    if(icon.exists()){
                        int width_4 = width / 4;
                        int width_8 = width_4 / 2;
                        int height_4 = height / 4;
                        int height_8 = height_4 / 2;
                        Image img = ImageIO.read(icon);
                        gs.drawImage(img, width_4 + width_8, height_4 + height_8,width_4,height_4, null);
                    }else{
                        System.out.println("Error: login图片不存在!");
                        log.info("Error: login图片不存在!");
    					return false;
                    }
                }
    	        // 结束写入
    	        gs.dispose();
    	        // 结束内存图片
    	        bufferedImage.flush();
    	        // 保存生成的二维码图片
    	        ImageIO.write(bufferedImage, "png", new File(savePath));
    	        return true;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return false;
    	}
    
    	/**
    	 * 解析QRCode二维码(输入图片地址)
    	 * @param filePath 二维码图片的路径
    	 * @return 二维码内容
    	 */
    	public static String readQRCode(String filePath){
    		File file = new File(filePath);
    		//读取图片到缓冲区
    		BufferedImage bufferedImage = null;
    		try {
    			bufferedImage = ImageIO.read(file);
    		} catch (IOException e) {
    			e.printStackTrace();
    			log.info("读取二维码文件失败");
    		}
    		//QRCode解码器
    		QRCodeDecoder codeDecoder = new QRCodeDecoder();
    		//通过解析二维码获得信息
    		String result = null;
    		try {
    			result = new String(codeDecoder.decode(new MyQRCodeImage(bufferedImage)), "utf-8");
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    			log.info("解析二维码失败");
    		}
    		return result;
    	}
    
    	/**
    	 * 解析QRCode二维码(输入图片字节流)
    	 * @param input 二维码图片的字节流
    	 * @return
    	 */
    	public static String readQRCode(InputStream input){
    		BufferedImage bufferedImage = null;
    		try {
    			bufferedImage = ImageIO.read(input);
    		} catch (IOException e) {
    			e.printStackTrace();
    			log.info("读取二维码字节流失败");
    		}
    		//QRCode解码器
    		QRCodeDecoder codeDecoder = new QRCodeDecoder();
    		//通过解析二维码获得信息
    		String result = null;
    		try {
    			result = new String(codeDecoder.decode(new MyQRCodeImage(bufferedImage)), "utf-8");
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    			log.info("解析二维码失败");
    		}
    		return result;
    	}
    
    }
    
    class MyQRCodeImage implements QRCodeImage {
    
    	BufferedImage bufferedImage;
    
    	public MyQRCodeImage(BufferedImage bufferedImage) {
    		this.bufferedImage = bufferedImage;
    	}
    
    	//宽
    	@Override
    	public int getWidth() {
    		return bufferedImage.getWidth();
    	}
    
    	//高
    	@Override
    	public int getHeight() {
    		return bufferedImage.getHeight();
    	}
    
    	//颜色
    	@Override
    	public int getPixel(int i, int j) {
    		return bufferedImage.getRGB(i, j);
    	}
    }

    后面一起测试

    2.zxing

    引入maven(com.google.zxing.javase已经包含了com.google.zxing.core,会自动引入)

     <dependency>
          <groupId>com.google.zxing</groupId>
          <artifactId>javase</artifactId>
          <version>3.3.0</version>
    </dependency>

    zxing工具类(传进logo的参数有值就是生成带logo的二维码,传入logo参数为空值的就是生成不带logo的二维码)

    package com.liqiye.springbootdemo.utils;
    
    import com.google.zxing.*;
    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.common.HybridBinarizer;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.InputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    import static com.google.zxing.client.j2se.MatrixToImageConfig.WHITE;
    import static jp.sourceforge.qrcode.util.Color.BLACK;
    
    /**
     * @author liqiye
     * @description zxing二维码工具类
     * @date 2019/4/13
     */
    public class ZxingUtils {
    
        private static final Logger log = LoggerFactory.getLogger(ZxingUtils.class);
    
        private static int WIDTH=300;
        private static int HEIGHT=300;
        private static String FORMAT="png";//二维码格式
    
        /**
         * 生成二维码
         * @param content 要写入二维码的内容
         * @param savePath 完整的保存路径
         * @param logoPath 完整的logo路径,如果为null或者"",就是不设置logo
         * @return 是否生成二维码图片成功
         */
        public static boolean createQRCode(String content, String savePath, String logoPath){
            //定义二维码参数
            Map hints=new HashMap();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//设置编码
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.Q);//设置容错等级
            hints.put(EncodeHintType.MARGIN, 2);//设置边距默认是5
            BufferedImage bufferedImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); // 定义缓冲区图片
            Graphics2D g = (Graphics2D) bufferedImage.getGraphics(); // 设置画图工具
    
            try {
                // zxing的官方类
                BitMatrix bitMatrix=new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hints);
                BufferedImage image = new BufferedImage(bitMatrix.getWidth(), bitMatrix.getHeight(), BufferedImage.TYPE_INT_RGB);
                for (int x = 0; x < bitMatrix.getWidth(); x++) {
                    for (int y = 0; y < bitMatrix.getHeight(); y++) {
                        image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);
                    }
                }
                g.drawImage(image, 0, 0, null); // 生成二维码
                // 判断是否需要添加logo图片
                if(logoPath != null && !"".equals(logoPath)) {
                    File icon = new File(logoPath);
                    if (!icon.exists()) {
                        log.info("Error: login图片不存在!");
                        return false;
                    }else{
                        BufferedImage logo = null;
                        logo = ImageIO.read(icon);
                        int width_4 = WIDTH / 4;
                        int width_8 = width_4 / 2;
                        int height_4 = HEIGHT / 4;
                        int height_8 = height_4 / 2;
                        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f));
                        g.drawImage(logo, width_4 + width_8, height_4 + height_8,width_4,height_4, null);
                    }
                }
                // 结束写入
                g.dispose();
                // 结束内存图片
                bufferedImage.flush();
                // 保存生成的二维码图片
                ImageIO.write(bufferedImage, "png", new File(savePath));
                /*Path path = new File(savePath).toPath();
                MatrixToImageWriter.writeToPath(bitMatrix, FORMAT, path); //写到指定路径下*/
                return true;
            } catch (Exception e) {
                e.printStackTrace();
                log.info("生成二维码失败");
                return false;
            }
        }
    
        /**
         * 解析二维码(输入图片地址)
         * @param filePath 二维码图片的路径
         * @return 二维码内容
         */
        public static Result readQrCode(String filePath){
            // zxing的官方类
            MultiFormatReader reader = new MultiFormatReader();
            File file = new File(filePath);
            try {
                BufferedImage image = ImageIO.read(file);
                BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
                Map hints=new HashMap();
                hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//设置编码
                Result result = reader.decode(binaryBitmap,hints);
                return result;
            } catch (Exception e) {
                e.printStackTrace();
                log.info("解析二维码失败");
                return null;
            }
        }
    
        /**
         * 解析二维码(输入图片字节流)
         * @param input 二维码图片的字节流
         * @return 二维码内容
         */
        public static Result readQrCode(InputStream input){
            // zxing的官方类
            MultiFormatReader reader = new MultiFormatReader();
            try {
                BufferedImage image = ImageIO.read(input);
                BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
                Map hints=new HashMap();
                hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//设置编码
                Result result = reader.decode(binaryBitmap,hints);
                return result;
            } catch (Exception e) {
                e.printStackTrace();
                log.info("解析二维码失败");
                return null;
            }
        }
    
    }
    

    3.测试

    package com.liqiye.springbootdemo.test;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.Result;
    import com.liqiye.springbootdemo.utils.QRCodeUtils;
    import com.liqiye.springbootdemo.utils.ZxingUtils;
    import org.junit.Test;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    
    /**
     * @author liqiye
     * @description 测试QRCode生成二维码
     * @date 2019/4/13
     */
    public class QRCodeTest {
    
        // QRCode生成二维码
        @Test
        public void test1() {
            String content = "http://www.baidu.com/";
            String savePath = "F:/qrcode.png";
            int version = 9;
            String logoPath = "F:/weixin.png";
            boolean result = QRCodeUtils.createQRCode(content, savePath, version, logoPath);
            if (result){
                System.out.println("\n二维码图片生成成功!");
            }else{
                System.out.println("\n二维码图片生成失败!");
            }
        }
    
        // QRCode解析二维码
        @Test
        public void test2() throws FileNotFoundException {
            String filePath = "F:/qrcode.png";
            File file = new File(filePath);
            FileInputStream fileInputStream = new FileInputStream(file);
            String s = QRCodeUtils.readQRCode(fileInputStream);
            System.out.println("获取二维码信息:"+s);
        }
    
        // zxing生成二维码
        @Test
        public void test3(){
            String content = "http://www.baidu.com/";
            String savePath = "F:/qrcode.png";
            String logoPath = "F:/weixin.png";
            boolean result = ZxingUtils.createQRCode(content, savePath,logoPath);
            if (result){
                System.out.println("\n二维码图片生成成功!");
            }else{
                System.out.println("\n二维码图片生成失败!");
            }
        }
    
        // zxing解析二维码
        @Test
        public void test4() throws FileNotFoundException {
            String filePath = "F:/qrcode.png";
            File file = new File(filePath);
            FileInputStream fileInputStream = new FileInputStream(file);
            Result result = ZxingUtils.readQrCode(fileInputStream);
            // 解析结果
            String content = result.toString();
            // 二维码格式
            BarcodeFormat barcodeFormat = result.getBarcodeFormat();
            // 二维码文本内容
            String text = result.getText();
            System.out.println("解析结果:"+content);
            System.out.println("二维码格式:"+barcodeFormat);
            System.out.println("二维码文本内容:"+text);
        }
    
    
    }
    

    总结:两种工具的使用方法也没差多少,生成的二维码样子都点区别,根据需求选用把

    展开全文
  • 生成二维码的方法很多,但是我感觉还是Google的ZXing生成比较简单的。 1.首先先下载google的包ZXing3.2.1.jar ,把包导入到项目中。 2.开始代码 2.1.生成二维码: /** * 生成 */ @Test public void ...

    生成二维码的方法很多,但是我感觉还是Google的ZXing生成比较简单的。

    1.首先先下载google的包ZXing3.2.1.jar   ,把包导入到项目中。

    2.开始代码

    2.1.生成二维码:

     /**
         * 生成
         */
        @Test
        public  void createQRBarcode(){
            int width = 300;
            int heigth = 300;
            String format = "png";//生成的格式
            String content = "http://blog.csdn.net/chentao866";//二维码内容
            //定义二维码参数
            HashMap hints = new HashMap();
            hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//设置编码格式
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);//设置纠错等级
            hints.put(EncodeHintType.MARGIN,3);//设置边距
    
            try {
                BitMatrix matrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE,width,heigth,hints);
                Path file = new File("D://11.png").toPath();
                MatrixToImageWriter.writeToPath(matrix,format,file);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    2.2解析二维码:

      /**
         * 解析
         */
        @Test
        public  void decodeQRBarcode(){
            try {
                MultiFormatReader multiFormatReader = new MultiFormatReader();//解析对象
                File file = new File("D://11.png");
                BufferedImage image = ImageIO.read(file);//把文件识别成一个图片
                BinaryBitmap binaeyBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
                HashMap hints = new HashMap();
                hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//设置编码格式
                Result result = multiFormatReader.decode(binaeyBitmap,hints);
                System.out.println("二维码的格式:"+result.getBarcodeFormat());
                System.out.println("二维码的内容:"+result.getText());
                System.out.println("解析结果:"+result.toString());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

       a.读取二维码图片,并送给 Zxing LuminanceSource 和 Binarizer 两兄弟的处理。

       b.处理完的位图和相应的解析参数,交由 MultiFormatReader 处理,并返回解析后的结果。


    展开全文
  • 本文实例为大家解析了Zxing生成二维码的经典案例,供大家参考,具体内容如下 1、首先呢,先编译 compile ‘com.google.zxing:core:3.2.1′ 2、实战 public class QRCode { private static int IMAGE_HALFWIDTH = 50...
  • 本代码为二维码生成和解析的Java实现代码,包括两个类和一个zxing的jar包(这个jar包是我自己整理的),一个生成二维码的类CreateQRCode类,一个是ReadQRCode类,此代码下载后,只需修改一下即可运行。
  • 1,生成二维码(带徽标) public static BufferedImage createQrCode(String content, int width, int height, String logoImgPath, Integer logoWidth, Integer logoHeight, boolean needCompress) throws Writ
  • zxing.dll下载 https://download.csdn.net/download/badao_liumang_qizhi/11623214 效果 实现 新建Winform程序,将上面下载的zxing.dll添加到引用。 拖拽一个按钮,双击进入其点击事件。 private void ...
  • Zxing生成Qrcode 工具类 1、引入依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>${zxing.version}</version> &...
  • 一、ZXing简介 二、ZXing方法类源码 BarcodeFormat:条形码格式类 EncodeHintType:编码显示风格 三、ZXing使用实战小案例 生成二维码 生成条形码 四、二维码扫一扫 导语 自从微信、支付宝推出扫一扫功能后,...
  • import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import ...
  • 鸿蒙二维码开发Zxing

    千次阅读 2021-05-25 15:53:08
    鸿蒙Zxing二维码开发 一,概述 鸿蒙中目前选用开源三方库Zxing进行二次封装开发来完成二维码扫描和生成,Zxing目前已经相当的成熟和稳定,是纯Java库,所以可以直接在鸿蒙工程中引用. 首先简单的概括一下二维码扫描...
  • c#使用zxing打印标签

    2021-12-15 08:54:20
    BarCodeClass.cs using System;...using ZXing.Common; using ZXing; using System.Windows.Forms; using System.Drawing; using System.Text.RegularExpressions; using ZXing.QrCode; namespa...
  • 1、下载zxing库 链接:https://pan.baidu.com/s/1i9Zj68s4ogz8wtYG39l97A 提取码:xtbq 2、右键“zxinglibrary.zip”->"解压到zxinglibrary"得到文件夹“zxinglibrary” 3、打开Android Studio -> 文件 ->...
  • /** * 生成二維碼前的配置信息 * @param content * @param format * @return */ public static BitMatrix createQRCode(String content,String format,int width,int hight){ Hashtable hints = new Hashtable();...
  • java 生成二维码 QRCode、zxing 两种方式 所需要的 jar 包下载地址:java生成二维码所需要的QRCode、zxing Jar包 如果你的是Maven工程,添加依赖包的方式请参考:将 jar 包加入到 Maven 库 如果是普通Java工程,...
  • Zxing实现工作原理之QRCode

    千次阅读 2017-06-29 14:23:52
    Zxing目前支持的格式如下:UPC-A、UPC-E、EAN-8、EAN-13、39码、93码、代码128、QR码。 二、Zxing使用原理介绍 Zxing是一个开源的,用于 Java 实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他...
  • 生成和扫描二维码(ZXing库) 一、ZXing概述 ZXing是谷歌自己推出的一个开源源码的二维码框架,可以实现使用手机的摄像头完成条形码的扫描和解码。 二、整合ZXing框架 将预先获取的core-3.4.0.jar包复制到工程的...
  • } @Override public void onScanCodeFailed(ReaderException exception) { } } 创建二维码 Bitmap qrCode = ZXWriter.createQRCode("xxxx") 创建条形码 Bitmap barCode = ZXWriter.createCode(BarcodeFormat.CODE_...
  • Android ZXing 解析

    万次阅读 热门讨论 2016-03-22 11:45:35
    参考: http://blog.csdn.net/eclipsexys/article/details/47834865 ...扫描截取界面的计算ZXingZXing作者的github地址: https://github.com/zxing/zxing通过git clone git@git
  • zxing中文字符乱码解决

    千次阅读 2019-02-15 11:53:59
    import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.goo...
  • Zxing的使用

    千次阅读 2020-11-04 14:37:57
    zxing添加依赖 */ implementation 'com.github.yuzhiqiang1993:zxing:2.2.5' //butterknife框架 annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' implementation '...
  •  ZXing,一个支持在图像中解码和生成条形码(如二维码、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabar)的库。ZXing(“zebra crossing”)是一个开源的、多格式的、用Java实现的一维/二维条码图像处理库,具有到...
  • 1,导入jar,或maven依赖 <dependencies> <...com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.4.1</version> </dependenc
  • 使用zxing.jar包创建生成二维码
  • 1.在项目的libs目录下添加zxing.jar包,并在build中引用 implementation files('libs/zxing.jar') 2.在AndroidManifest.xml文件中添加权限 <uses-permission android:name="android.permission.VIBRATE" /&...
  • Android zxing扫码登录功能简单实现

    千次阅读 2021-10-08 15:43:20
    以module形式引入zxing的android库,代码按需求自行修改,也可以下载使用此demo中的已修改的库。 主要调用的接口如下: public class ZXingProxy { private static ZXingProxy proxy = null; public static ...
  • 使用zxing生成彩色或带图片的二维码

    千次阅读 2018-03-18 22:55:18
    一、zxing api的pom依赖 com.google.zxing core 3.3.0 com.google.zxing javase 3.3.0 二、生成普通的二维码 package com.mengfei.util; import com.google.
  • 1、zxing 生成二维码的依赖 implementation 'com.google.zxing:core:3.3.3' implementation 'com.journeyapps:zxing-android-embedded:3.6.0' 2、zxing 扫码二维码依赖 implementation 'pub.devrel:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,241
精华内容 496
关键字:

zxing createqrcode