生成简单的二维码

生成的效果


1. MatrixToImageWriter.java

package demo;
import java.awt.Color;
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;
public final class MatrixToImageWriter {

  private static final int BLACK = 0xFF000000;  
  private static final int WHITE = 0xFFFFFFFF;
  private static final int BLUE = Color.BLUE.getBlue();
  private static final int GREEN = Color.GREEN.getGreen();

  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) ? BLUE : 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 logoWriteToFile(BitMatrix matrix, String format, File 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);
    }
  }
}

2.Test.java(二维码的生成)

package demo;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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;


public class Test {

public static void main(String[] args) throws WriterException {
MultiFormatWriter formatWirter = new MultiFormatWriter();
String content = "I love you";
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");  // 设置编码
BitMatrix bitmatrix = formatWirter.encode(content, BarcodeFormat.QR_CODE, 300, 300, hints);  
File file = new File("d:/1.jpg");
try {
MatrixToImageWriter.writeToFile(bitmatrix, "jpg", file);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("..........................完成!!");
}
}

### 如何使用Python生成简单二维码 为了生成简单二维码,在Python中通常会采用`qrcode`库。这个库不仅安装简便而且易于使用,能够快速地将字符串转换成二维码图像。 #### 安装依赖包 首先需要确保环境中已经安装了必要的库。可以通过pip工具轻松完成安装: ```bash pip install qrcode[pil] ``` 这段命令将会下载并安装`qrcode`及其依赖项PIL(即Pillow),后者用来处理图片文件[^1]。 #### 创建基本的二维码 下面是一段用于创建基础版本二维码的Python脚本示例: ```python import qrcode data = 'https://www.example.com' # 要编码的数据 filename = 'example.png' # 输出文件名 img = qrcode.make(data) img.save(filename) print(f"QR code saved as {filename}") ``` 上述代码片段展示了最简化的方式去构建一个包含URL链接的二维码,并将其保存为PNG格式的图片文件[^4]。 对于更复杂的场景或者想要调整更多选项的情况,则可以利用`QRCODE`类来进行更加精细的操作。比如设置错误纠正级别、边框宽度等属性来增强二维码的质量和美观度[^5]。 #### 高级配置 如果希望进一步定制化二维码外观,可参考如下改进版的例子: ```python import qrcode from PIL import Image qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=4, ) text_data = "This is a test message." qr.add_data(text_data) qr.make(fit=True) image = qr.make_image(fill_color="black", back_color="white") logo_display = Image.open('path_to_logo.jpg') logo_display.thumbnail((80, 80)) pos = ((image.size[0] - logo_display.size[0]) // 2, (image.size[1] - logo_display.size[1]) // 2) image.paste(logo_display, pos) image.save("custom_qr_with_logo.png") ``` 此部分代码实现了向二维码中心添加Logo图形的效果,同时也指定了不同的颜色方案以适应特定的设计需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值