1) maven 프로젝트를 만들고 pom.xml에서 zxing 종속성 패키지를 가져옵니다.
<종속성> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <종속성> <groupId>com.google.zxing</ groupId> <artifactId>javase</artifactId> <version>3.3.0</version> <exclusions> <exclusion> <artifactId>core</artifactId> <groupId>com.google.zxing</groupId> </exclusion> </제외> </의존성>
2) 테스트 클래스 TestController를 생성합니다. 코드는 다음과 같습니다.
import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.google.zxing.client.j2se.MatrixToImageWriter; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; 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; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; @RestController 공개 클래스 TestController { // 生成二维码 @RequestMapping("/getCode") public void getCode(HttpServletResponse response){ // QR 코드 내용 String contents = " Baidu, you will know "; // QR 코드임을 나타냄 BarcodeFormat qrCode = BarcodeFormat.QR_CODE; // QR 코드 너비 int width = 300 ; // QR 코드의 높이 int height = 300; // 반환되는 이미지 형식 String format = "png"; response.setContentType("image/png"); try { Map<EncodeHintType, Object> 힌트 = new HashMap<EncodeHintType, Object>(); // QR 코드 인코딩 문자 집합 설정 hints.put(EncodeHintType.CHARACTER_SET,"utf-8"); // QR 코드 힌트 의 외부 간격 설정 .put(EncodeHintType.MARGIN, 10); // QR 코드 오류 허용 수준 설정 hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // QR 코드 객체 생성 BitMatrix bitMatrix = new MultiFormatWriter().encode(내용, qrCode, 너비, 높이, 힌트); // 输出二维码 MatrixToImageWriter.writeToStream(bitMatrix, format, response.getOutputStream()); } catch (WriterException e) { // TODO 자동 생성 catch 블록 e.printStackTrace(); } catch (IOException e) { // TODO 자동 생성 catch 블록 e.printStackTrace(); } } }