我有一个API,前端(PHP)调用它来生成QR码。 QR码作为字节数组(byte[]
)发回。目前,我们正在使用付费库,可以将qr代码呈现为OutputStream
,就像ByteArrayOutputStream
一样。但是这个库不支持某些UTF-8字符,这对我们造成了问题。通过ZXing的QR代码生成过程,我们注意到在包含QR代码的编码之前,可以在哈希表中指定字符集。
我们希望尽可能少地更改现有功能。因此想知道是否可以将QRCodeWriter.encode
方法的BitMatrix输出转换为字节数组?
答案 0 :(得分:2)
您可以通过查看课程com.google.zxing.client.j2se.MatrixToImageWriter
(file on github)找到一些阅读和转换BitMatrix的示例代码
答案 1 :(得分:1)
这是一个快速实现:
import com.google.zxing.qrcode.QRCodeWriter
import com.google.zxing.client.j2se.MatrixToImageWriter
val bitMatrix = qrCodeGenerator.encode("text", BarcodeFormat.QR_CODE, 300, 300)
val os = OutputStream()
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", os)
// do whatever with `os`
不要忘记更新build.gradle
// ...
dependencies {
// ...
implementation 'com.google.zxing:core:3.4.1'
implementation 'com.google.zxing:javase:3.4.1'
}
// ...