我正在为 Android 设备开发应用程序。我想生成带有徽标的 QR 码。
有什么办法吗?我不知道该怎么做。请问你能帮帮我吗?可能有一些现成的图书馆或如何做的例子。
谢谢!
原文由 Huitarheroherohero 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在为 Android 设备开发应用程序。我想生成带有徽标的 QR 码。
有什么办法吗?我不知道该怎么做。请问你能帮帮我吗?可能有一些现成的图书馆或如何做的例子。
谢谢!
原文由 Huitarheroherohero 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Kotlin 中,使用 zxing 库和资产文件夹中的叠加层。
需要进行更正,因为叠加层会隐藏部分二维码;
MatrixToImageWriter 类来自: https ://github.com/kenglxn/QRGen
private fun generateQrCodeWithOverlay(qrCodeData: String): Bitmap? {
val hints = HashMap<EncodeHintType?, Any?>()
// The Error Correction level H provide a QR Code that can be covered by 30%
hints[EncodeHintType.ERROR_CORRECTION] = ErrorCorrectionLevel.H
val writer = QRCodeWriter()
return try {
// Create a QR Code from qrCodeData and 512 by 512 pixels, same size as my Logo
val encodedQrCode = writer.encode(qrCodeData, BarcodeFormat.QR_CODE, 512, 512, hints)
var qrCodeBitmap: Bitmap = MatrixToImageWriter.toBitmap(encodedQrCode)
val qrCodeCanvas = Canvas(qrCodeBitmap)
// Used to resize the image
val scaleFactor = 4
val logo =
BitmapFactory.decodeStream(app.assets.open("path/to/your/logo.png"))
// Resizing the logo increasing the density to keep it sharp
logo.density = logo.density * scaleFactor
val xLogo = (512 - logo.width / scaleFactor) / 2f
val yLogo = (512 - logo.height / scaleFactor) / 2f
qrCodeCanvas.drawBitmap(logo, xLogo, yLogo, null)
qrCodeBitmap
} catch (e: Exception) {
// handle errors
null
}
}
原文由 Leonardo Ferreira 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
您可以将徽标添加为 图像叠加层,例如
请参阅这篇 文章 和 github 以获取更多信息