Gerador de QR Codes em Kotlin: criação e configuração de QR Codes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Gerador de QR Codes em Kotlin: guia completo



Os QR Codes se tornaram uma parte essencial do mundo digital moderno. Eles são usados para troca rápida de informações: desde links para sites até dados de contato e senhas de Wi-Fi. Neste artigo, veremos como criar seu próprio gerador de QR Codes na linguagem Kotlin usando a biblioteca popular ZXing («Zebra Crossing»). Kotlin, sendo uma linguagem moderna e concisa, é perfeita para o desenvolvimento de aplicações tanto servidoras quanto móveis para Android. Você aprenderá como gerar QR Codes de vários tipos, personalizar sua aparência e integrá-los em seus projetos.



Por que Kotlin e ZXing?



Kotlin é uma linguagem estaticamente tipada que roda sobre a JVM, ativamente suportada pelo Google para desenvolvimento Android. Sua sintaxe é limpa e expressiva, tornando o código mais legível e menos propenso a erros. A biblioteca ZXing é o padrão de facto para trabalhar com QR Codes e códigos de barras no ecossistema Java/Kotlin. Ela suporta vários formatos (QR Code, Data Matrix, Aztec e outros) e oferece opções flexíveis de personalização.



Instalação e configuração



Para começar, adicione a dependência ao seu arquivo build.gradle.kts (se você usa Gradle):



// Para projeto JVMimplementation("com.google.zxing:core:3.5.3")implementation("com.google.zxing:javase:3.5.3")

// Para projeto Android (geralmente apenas core é suficiente)implementation("com.google.zxing:core:3.5.3")


Se você trabalha com Maven, adicione as dependências correspondentes no pom.xml.



Exemplo básico: gerando um QR Code simples



Vamos criar uma função simples que gera um QR Code a partir de uma string de texto e o salva como uma imagem PNG.



import com.google.zxing.BarcodeFormatimport com.google.zxing.qrcode.QRCodeWriterimport com.google.zxing.client.j2se.MatrixToImageWriterimport java.nio.file.Paths

fun generateQRCode(text: String, filePath: String, width: Int = 300, height: Int = 300) { val writer = QRCodeWriter() val bitMatrix = writer.encode(text, BarcodeFormat.QR_CODE, width, height) val path = Paths.get(filePath) MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path) println("QR Code salvo com sucesso em: $filePath")}

fun main() { generateQRCode("https://pythonlib.ru", "qrcode_pythonlib.png")}


Explicação do código:

  • QRCodeWriter() — cria uma instância do writer para QR Codes.
  • encode() — codifica a string em uma matriz de bits (imagem preto e branco).
  • MatrixToImageWriter.writeToPath() — método conveniente para salvar a matriz em um arquivo.


Configuração de cor e tamanho



Por padrão, o QR Code é gerado em preto e branco. Você pode alterar suas cores usando MatrixToImageConfig. Aqui está um exemplo com código verde em fundo branco:



import com.google.zxing.client.j2se.MatrixToImageConfigimport java.awt.Colorimport java.awt.image.BufferedImage

fun generateColoredQRCode(text: String, filePath: String, foregroundColor: Color = Color.BLACK, backgroundColor: Color = Color.WHITE) { val writer = QRCodeWriter() val bitMatrix = writer.encode(text, BarcodeFormat.QR_CODE, 300, 300) val config = MatrixToImageConfig(foregroundColor.rgb, backgroundColor.rgb) val bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix, config) // Salvando o BufferedImage em um arquivo val outputFile = java.io.File(filePath) javax.imageio.ImageIO.write(bufferedImage, "PNG", outputFile) println("QR Code colorido salvo em: $filePath")}

fun main() { generateColoredQRCode("Hello, Kotlin!", "colored_qr.png", foregroundColor = Color(0x00AA00),

Recommendations