> 개발환경
- Spring MVC Project
- Eclipse 4.28
- jdk 11
- MySQL
그래서 구글의 QR코드 API 사용법을 가져와봤다.
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.5.2</version>
</dependency>
의존성을 추가했으면 뭘 해야한다? Maven Update를 해야한다~
String payInfo = 예약 정보(결제정보); String fileName = 설정할 이름 + ".png";
- payInfo는 QR코드에 들어갈 결제 정보 문자열이다.
꼭 String이여야 하는 것 같다.
- fileName은 QR코드 이미지 파일의 저장 이름이다.
int width = 300; int height = 300;
- width와 height는 QR코드의 사이즈를 설정하는 변수이다.
BitMatrix bitMatrix = new QRCodeWriter().encode(payInfo,BarcodeFormat.QR_CODE,width,height);
- encode()안에 결제정보, 사이즈 값을 넣는다.
BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); }
- setRGB를 통해 QR코드의 색상도 변경할 수 있다고 한다.
하지만 난 그냥 기본적인 검은색, 흰색 QR로 만듦
File qrFile = new File(저장 경로 + fileName); ImageIO.write(qrImage, "png", qrFile);
- 저장경로와 파일명을 삽입한다. (저장경로의 마지막 폴더에도 /를 붙여줘야함!!)
- ImageIO.write(qr이미지객체, 파일형태, 저장경로)를 입력한다.
try { BitMatrix bitMatrix = new QRCodeWriter().encode(payInfo,BarcodeFormat.QR_CODE,width,height); BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); } } File qrFile = new File(저장 경로 + fileName); ImageIO.write(qrImage, "png", qrFile); } catch (Exception e) { e.printStackTrace(); }