Я пытаюсь показать QR-код в своем веб-браузере, но заметил, что если я не закодирую QR-код в формате png, веб-браузер не покажет фотографию, а вместо этого будет серое изображение.
Код именно здесь, в этой ссылке.https://www.callicoder.com/generate-qr-code-in-java-using-zxing/
Изображение QR-кода HTML-файл
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<head>
<meta charset="UTF-8">
<title>This is your QR Code</title>
</head>
<body>
<img src="/Users/John/Desktop/MyQRCode.png" alt="QR Code">
</br>
<img th:src="|data:image/png;base64,${dataUrl}|" />
</body>
</html>
Контроллер
private static final String QR_CODE_IMAGE_PATH = "/Users/John/Desktop/MyQRCode.png";
@GetMapping(path = "/qrCode")
public String qrCode(Model model) {
try {
generateQRCodeImage("www.facebook.com", 350, 350, QR_CODE_IMAGE_PATH);
} catch (WriterException e) {
System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
} catch (IOException e) {
System.out.println("Could not generate QR Code, IOException :: " + e.getMessage());
}
try {
byte[] qr = getQRCodeImage("www.facebook.com", 350, 350);
String encodedStr64 = Base64.encodeBase64String(qr);
model.addAttribute("dataUrl", encodedStr64);
model.addAttribute("data", qr);
} catch (WriterException e) {
System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
} catch (IOException e) {
System.out.println("Could not generate QR Code, IOException :: " + e.getMessage());
}
}