세팅 방법 !
Maven Repository
-> 두 개 복사
-> build.gradle에 추가
🔽
-> 컨트롤러 내용
- qr_pi.java
package kr.co.kim.qr;
import java.io.ByteArrayOutputStream;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import lombok.extern.slf4j.Slf4j;
//GOOGLE에서 제공하는 ZXing을 이용하여 QR API를 구축함
@RestController
//@RequiredArgsConstructor //생성자 주입없이 자동으로 구조를 활성화 시키는 어노테이션
@Slf4j //오류 사항 및 클래스 실행 시 log기록을 남기는 어노테이션
public class qr_api {
@GetMapping("/qr/naver")
public ResponseEntity<byte[]> qr_web() throws Exception {
int size = 300; //QR 이미지 사이즈
String url = "http://pensionandlife.webmiwon.co.kr:8084/mweb/index.jsp"; //QR을 출력 시 이동하는 경로
//사이즈, 경로, 패턴형태를 구성으로 이미지화 시키는 작업
BitMatrix bm = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, size, size);
//BYTE로 이미지를 생성하는 Stream
ByteArrayOutputStream bs = null;
try {
bs = new ByteArrayOutputStream();
//저장 방식 (생성코드, 생성파일명, 저장형태)
MatrixToImageWriter.writeToStream(bm, "PNG", bs);
}catch (Exception e) {
System.out.println("QR 라이브러리 생성 오류 발생!!");
}
//해당 이미지를 웹사이트에 바로 출력 (CDN 서버 이미지 출력 형태와 동일함)
return ResponseEntity.ok().contentType(MediaType.IMAGE_PNG).body(bs.toByteArray());
}
}
'CLASS > SPRINGBOOT' 카테고리의 다른 글
#5-1 / websocket 통신... (1) | 2024.09.26 |
---|---|
#4-3 / Oracle + Mybatis 회원가입 (0) | 2024.09.04 |
#1-1 / 🌸 Gradle Project start + Oracle (0) | 2024.08.30 |
#11-1 / websocket - socket 통신 (0) | 2024.08.29 |
#10-3 / Ajax로 이미지 전송 및 JPA => 삭제 (0) | 2024.08.29 |