java 生成二维码图片
时间: 2023-10-16 16:11:46 浏览: 99
Java生成二维码图片
在Java中生成二维码图片,可以使用第三方库ZXing。下面是一个简单的示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
public class QRCodeGenerator {
public static void main(String[] args) throws WriterException, IOException {
String data = "https://www.example.com"; // 要生成二维码的内容
int size = 300; // 二维码图片的大小
// 设置二维码的参数
QRCodeWriter writer = new QRCodeWriter();
BitMatrix bitMatrix = writer.encode(data, BarcodeFormat.QR_CODE, size, size);
Path path = FileSystems.getDefault().getPath("qrcode.png"); // 保存图片的路径
ImageIO.write(MatrixToImageWriter.toBufferedImage(bitMatrix), "png", new File(path.toString()));
}
}
```
其中,`MatrixToImageWriter.toBufferedImage()`是一个辅助方法,用于将`BitMatrix`对象转换为`BufferedImage`对象,代码如下:
```java
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import com.google.zxing.common.BitMatrix;
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);
}
}
return image;
}
}
```
这样就可以生成一个二维码图片,并保存在本地。
阅读全文