introduzir
O pacote zxing de Goole é usado principalmente. A seguir, é apresentado um código de amostra, que é muito conveniente para que todos entendam e aprendam. O código pertence à estrutura preliminar e tem funções, e precisa ser melhorado e otimizado de acordo com o uso real.
Etapa 1: MAVEN IMPORT ZXING
<Depencency> <voundid> com.google.zxing </frupiD> <ArtifactId> core </storkactid> <versão> 3.2.1 </version> </dependency>
Etapa 2: comece a gerar o código QR:
estático privado final int preto = 0xff000000; estático privado final int white = 0xffffffff;/*** Salvar o código QR gerado na imagem* @param matrix QR Code int height = matrix.getHeight (); Imagem bufferedImage = new bufferImage (largura, altura, bufferImage.type_int_rgb); for (int x = 0; x <width; x ++) {for (int y = 0; y <altura; y ++) {image.setrgb (x, y, matrix.get (x, y)? preto: branco); }} retornar imagem;}/*** Gere código QR e escreva no arquivo* @param Content Exigir o conteúdo do código QR* @param formato de imagem formato jpg* @param Arquivo* @throws Exception*/public static void Multiform Multiform (conteúdo da string, formato de string, arquivo) @Suppresswarnings ("RawTypes") mapa dicas = new hashmap (); // Defina UTF-8 para evitar dicas de iluminação chinesa (codehinttype.character_set, "utf-8"); // Defina o tamanho da área branca em torno do código QR Hints.put (EncodeHintType.Margin, 1); // Defina a tolerância de falhas do código QR Hints.put (codehinttype.error_correction, errorCorrectionLevel.h); // desenhe o código QR bitMatrix bitMatrix = multiformatwriter.encode (conteúdo, barcodeFormat.qr_code, largura, altura, dicas); Imagem bufferedImage = tobufferImage (bitMatrix); if (! imageio.write (imagem, formato, arquivo)) {lança a nova ioException ("não pudesse escrever uma imagem do formato" + formato + "para" arquivo +); }}Etapa 3: Escreva o texto na imagem do código QR:
/*** Adicione o texto à imagem do código QR* @param PressText Texto* @param qrfile qr Código arquivo* @param fontStyle* @param cor* @param fontsize*/public static void PressText (string PressText, arquivo QRFILE, Int FontStyle, cor, cor, Int Fontsize) "UTF-8"); Imagem src = imageio.read (qrfile); int imagew = src.getwidth (null); int imageh = src.getheight (nulo); BufferImage imagem = new bufferImage (imagew, imageh, bufferiMage.type_int_rgb); Gráficos g = image.creategraphics (); G.Drawimage (src, 0, 0, imagew, imageh, null); // defina a cor do pincel g.setColor (cor); // defina a fonte Fonte Fonte = new Font ("安安", FontStyle, Fontsize); FontMetrics métricas = g.getFontMetrics (font); // As coordenadas do texto na figura são definidas no meio aqui int startx = (largura - métricas.stringwidth (PressText)) /2; int starty = altura/2; g.setFont (fonte); G.DrawString (PressText, StartX, Starty); G.Dispose (); FileOutputStream Out = new FileOutputStream (qrfile); Imageio.write (imagem, "jpeg", out); out.Close (); System.out.println ("Image Press SucelT");}Etapa 4: teste no método principal, um código QR com texto no meio será gerado
public static void main (string [] args) lança exceção {arquivo qrcfile = new File ("/users/Deweixu/", "google.jpg"); writEtofile ("www.google.com.hk", "jpg", qrcfile); PressText ("Google", qrcfile, 5, color.red, 32);}Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo seja de ajuda para o seu estudo ou trabalho. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.