`
wuzijingaip
  • 浏览: 329645 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

zxing-google二维码

 
阅读更多


import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
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.common.BitMatrix;

public class ZxingUtil {
	private static final int BLACK = 0xFF000000;  
    private static final int WHITE = 0xFFFFFFFF; 
    
    /**
     * @param url 二维码content
     * @param width
     * @param height
     * @param flag
     * @return
     * @throws Exception
     */
    public static BitMatrix buildBitMatrix(String url,int width,int height,boolean flag) throws Exception {
        Hashtable hints = new Hashtable();  
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");//内容所使用编码    
        BitMatrix bitMatrix = new MultiFormatWriter().encode(url,BarcodeFormat.QR_CODE, width, height, hints);
        return flag?deleteWhite(bitMatrix):bitMatrix;
    }

    /**
     * 保存二维码图片
     * @param bitMatrix 二维码
     * @param format 保存格式
     * @param filepath 保存路径
     * @param picname 保存name
     * @throws Exception
     */
	public static void creatTwoCode(BitMatrix bitMatrix,String format,String filepath,String picname) throws Exception {
        File outputFile = new File(filepath+File.separator+picname+"."+format);//生成二维码图片
        writeToFile(bitMatrix, format, outputFile);
    } 
	
	public static BitMatrix deleteWhite(BitMatrix matrix){  
	    int[] rec = matrix.getEnclosingRectangle();  
	    int resWidth = rec[2] + 1;  
	    int resHeight = rec[3] + 1;  
	  
	    BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);  
	    resMatrix.clear();  
	    for (int i = 0; i < resWidth; i++) {  
	        for (int j = 0; j < resHeight; j++) {  
	            if (matrix.get(i + rec[0], j + rec[1]))  
	                resMatrix.set(i, j);  
	        }  
	    }  
	    return resMatrix;  
	}
    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;  
    }  
    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);  
    	}  
    }

}

分享到:
评论

相关推荐

    谷歌二维码jar包(zxing-3.3.2 && zxing-core.2.1 && zxing-javase-2.1)

    谷歌二维码库,也被称为ZXing(Zebra Crossing),是一个开源的、多平台的条码读取和生成项目。ZXing提供了各种格式的条形码和二维码处理能力,包括QR码、Data Matrix、UPC和EAN等。在给定的压缩包中,包含了三个...

    zxing-zxing-3.3.3.rar

    ZXing(Zebra Crossing)是Google开发的一个开源项目,它提供了多种格式的一维和二维条码的读取、写入和处理能力。在Android平台上,ZXing被广泛用于实现二维码扫描功能,使得用户可以通过手机摄像头实时捕捉并解析...

    android studio上使用zxing-android-embedded实现二维码生成和扫描

    在Android开发中,ZXing(Zebra Crossing)是一个流行的条形码和二维码处理库,而zxing-android-embedded是ZXing库的一个简化版本,专为Android应用设计,方便集成到项目中实现二维码的生成和扫描功能。下面我们将...

    zxing-core-3.2.2 zxing-javase-3.2.1

    ZXing,全称为“Zebra Crossing”,是一款开源的、跨平台的条形码和二维码读取库。这个项目由Google发起并维护,旨在提供一种简单、高效的方式处理各种类型的条形码和二维码,包括但不限于EAN、UPC、Code 128、QR ...

    zxing-code-1.7&amp;zxing-j2se-1.7[用于编解二维码].7z

    ZXing(Zebra Crossing)是Google开发的一个开源项目,它提供了多种格式的一维和二维条码的读取和编写功能。这个"zxing-code-1.7&amp;zxing-j2se-1.7[用于编解二维码].7z"压缩包包含的是ZXing项目的1.7版本,专门...

    zxing-master 二维码生成 二维码扫描3

    ZXing,全称为“Zebra Crossing”,是一款开源的、跨平台的条码和二维码处理库。这个项目由Google开发并维护,提供了多种语言版本的API,包括Java、C++、Python等,支持多种条码格式,如QR码、Data Matrix、UPC、EAN...

    zxing-zxing-3.0

    ZXing(Zebra Crossing)是一个开源的、多平台的条形码和二维码读取与生成库,由Google开发并维护。ZXing在Java语言的基础上,提供了多种编程语言的API,如Android、iOS、C#等,使得开发者可以方便地集成到自己的...

    zxing-3.1.0.jar和zxing-javase-3.1.0.jar

    解析二维码时,可以使用`com.google.zxing.MultiFormatReader`类,它可以尝试多种格式的解码,包括QR Code。通过`Reader`接口的`decode(BinaryBitmap)`方法,可以对图像进行解码,获取其中的数据。 6. **应用示例*...

    zxing-javase.jar

    java实现二维码的绘制和解析(zxing by google) 截止目前为止最新版本为1.7,提供以下编码格式的支持: UPC-A and UPC-E EAN-8 and EAN-13 Code 39 Code 93 Code 128 QR Code ITF Codabar RSS-14 (all ...

    Zxing-core-3.3.1

    zxing jar包 二维码Java开发包 Android开发条形码,二维码

    Android zxing生成 扫描二维码(依赖形式)

    1. **创建二维码**:使用`com.google.zxing.Writer`接口及其子类,如`QRCodeWriter`,来生成二维码图像。首先,创建一个Writer实例,然后调用其`encode`方法,传入你要编码的数据和格式。 2. **将二维码转换为...

    zxing-client-android

    "ZXing-client-android"是一个基于Android平台的二维码和条形码扫描与生成工具的源代码库。这个项目的核心是ZXing(发音为 "zebra crossing"),它是一个开放源代码的多格式一维和二维条码图像处理库,用于读取、...

    zxing-3.3.0.jar(core+javase)

    zxing-3.3.0,java开发二维码的jar包,包含core和javase下的内容,可分别调用其中方法生成二维码并输出到文件

    zxing-cpp.rar

    ZXing,又名Zebra Crossing,是一款开源的、跨平台的条形码和二维码读取库。它最初由Google开发,后来成为一个独立的开源项目,旨在为各种设备和环境提供便捷的条码识别功能。在C++领域,ZXing-C++是其针对C++语言的...

    zxing-3.3.0.jar

    ------------------------二维码生成所需的jar包-------------------------------

    ZXing实现自定义二维码扫描框

    ZXing(Zebra Crossing)是一个开源的、跨平台的条码和二维码读写库,它支持多种条码格式,如QR Code、Data Matrix、UPC等。本项目着重讲解如何利用ZXing在Android平台上实现一个自定义的二维码扫描功能。 首先,...

    Google Zxing-2.1

    总之,Google Zxing-2.1是一个强大的二维码处理库,它简化了二维码的读取和生成过程,为Java开发者提供了丰富的功能,无论是桌面应用还是移动应用,都可以轻松地集成二维码功能。对于想要涉足二维码开发的程序员来说...

    自用Zxing库 Zxing-lib

    implementation 'com.google.zxing:core:3.4.1' implementation 'com.journeyapps:zxing-android-embedded:3.6.0' } ``` 二、Zxing库的核心组件 1. `BarcodeScanner`: 这是Zxing库的主要组件,用于扫描和解码...

    zxing-core-3.2.0.jar包资源

    在Android开发中,ZXing通常用于实现扫描和识别二维码或条形码的功能,为移动应用增加数据录入或链接跳转的能力。 `zxing-core-3.2.0.jar`是ZXing项目的最新版本,提供了一个Java接口,使得开发者可以在不依赖...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    Google开源的ZXing(Zebra Crossing)库为开发者提供了跨平台的二维码和条形码生成与解码能力。本项目以ZXing为基础,结合自定义功能,如生成带有Logo的彩色二维码,为开发人员提供了更丰富的应用场景。 ZXing(又...

Global site tag (gtag.js) - Google Analytics