生成二维码图片并保存图片功能

来源:互联网 发布:酷派云优化怎么关闭 编辑:程序博客网 时间:2024/05/17 23:04
import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.RandomAccessFile;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;public class Test2 {        public static byte[] createQRCode(String content) {        byte[] result = null;        try {            Qrcode qrcodeHandler = new Qrcode();            qrcodeHandler.setQrcodeErrorCorrect('M');            qrcodeHandler.setQrcodeEncodeMode('B');            qrcodeHandler.setQrcodeVersion(7);                        byte[] contentBytes = content.getBytes("utf-8");            BufferedImage bufferImgage = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);                        Graphics2D graphics2D = bufferImgage.createGraphics();            graphics2D.setBackground(Color.WHITE);            graphics2D.clearRect(0, 0, 200, 200);            graphics2D.setColor(Color.BLACK);            int pixoff = 10;            if (contentBytes.length > 0 && contentBytes.length < 120) {                boolean[][] matrix = qrcodeHandler.calQrcode(contentBytes);                for (int i = 0; i < matrix.length; i++) {                    for (int j = 0; j < matrix.length; j++) {                        if (matrix[j][i]) {                            graphics2D.fillRect(j * 4 + pixoff, i * 4 + pixoff, 4, 4);                        }                    }                }            } else {                //            }            graphics2D.dispose();            bufferImgage.flush();            ByteArrayOutputStream output = new ByteArrayOutputStream();            ImageIO.write(bufferImgage, "png", output);            result = output.toByteArray();            output.close();                    } catch (Exception e) {            e.printStackTrace();        }                return result;    }        public static void saveImage(byte[] data, String fileName,String type) {                 BufferedImage image = new BufferedImage(300, 300,BufferedImage.TYPE_BYTE_BINARY);           ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();           try {               ImageIO.write(image, type, byteOutputStream);               // byte[] date = byteOutputStream.toByteArray();               byte[] bytes =  data;               System.out.println("path:" + fileName);               RandomAccessFile file = new RandomAccessFile(fileName, "rw");               file.write(bytes);               file.close();           } catch (IOException e) {               e.printStackTrace();           }       }       public static void main(String[] args) {    byte[]  imgs=Test2.createQRCode("weixin://wxpay/bizpayurl?pr=MfVyUvd");    Test2.saveImage(imgs, "D:/weixin/aaa.png", "png");    System.out.println(imgs);         }                                                                                }



使用的jar

QRCode.jar

1 0