Red de conocimiento informático - Conocimiento de la instalación - Estoy buscando una demostración de generación y reconocimiento de códigos QR de programación Java. Espero que el contenido sea más completo.

Estoy buscando una demostración de generación y reconocimiento de códigos QR de programación Java. Espero que el contenido sea más completo.

¿Importar?java.awt.Color;

¿importar?java.awt.Color;

¿Importar?

¿importar?java. awt.Color;

importar?java.awt.Graphics2D;

importar?java.awt.image.BufferedImage;

importar?java.io.Graphics2D ;

¿importar?

importar?java.io.IOException;

importar?java.io.InputStream;

importar?java .io.OutputStream;

importar?javax.imageio.ImageIO;

importar?ImageIO;

importar?jp.sourceforge.qrcode.QRCodeDecoder;

p>

¿importar?jp.sourceforge.qrcode.exception.DecodingFailedException;

¿importar?

importar?com.swetake.util.Qrcode;

public?class?TwoDimensionCode?{

/**

?*?Generar imagen de código QR (QRCode)

?*?

?*?@param?content

?* Guardar contenido

?*?@param?imgPath

?*imagePath

?*/

público?{

this.encoderQRCode(content,?imgPath,?" png",?7);

}

/**

?*?Generar imagen de código QR (QRCode)

?*?

?*?@param ?content

?* Contenido de almacenamiento

?*@param?output

?@param?output

?* Flujo de salida

?*/

público?{

this.encoderQRCode(contenido,?salida,?" png",?7);

}

/**

?*?Generar imagen de código QR (QRCode)

?*?

?*?@ param?content

?* Guardar contenido

?*?@param?imgPath

?*imagePath

?*?@param ?imgType

?*imageType

?*/

público?{

this.encoderQRCode(content,?imgPath,?imgType ,?7 );

}

/**

?*?Generar imagen de código QR (QRCode)

?*?

?*?@param?content

?* Contenido de almacenamiento

?*@param?output

?@para

m?output

?* Flujo de salida

?*?@param?imgType

?*imageType

?*

público?{

this.encoderQRCode(content,?output,?imgType,?7);

}

/**

?*?Generar imagen de código QR (QRCode)

?*?

?*?@param?content

?* Guardar contenido

?*?@param?imgPath

?*imagePath

?*?@param?imgType

?*imageType

?*?@param?size

?*Tamaño del código QR

?*

¿público?{

prueba {

BufferedImage?bufImg?=?this.qRCodeCommon(content,?imgType,?size);

File?imgFile?=?new?File(imgPath);

///?Generar código QR Imagen de código QR

ImageIO.write(bufImg,?imgType,?imgFile);

}?{

e.printStackTrace ( );

}

}

}

/**

?*?Generar bidimensional Imagen de código (QRCode)

?*?

?*?@param?content

?* Contenido de almacenamiento

?*@ param?output

?@param?output

?* Flujo de salida

?*?@param?imgType

?*imageType

?*?@param?size

?*Tamaño del código QR

?*

¿público?{

try{

BufferedImage?bufImg?=?this.qRCodeCommon(content,?imgType,?size);

//Generar imagen de código QR QRCode

ImageIO.write(bufImg,?imgType,?output);

}?{

e.printStackTrace();

}

}

}

/**

?*?Método de **** público para generar una imagen de código QR (QRCode)

?*?

?*?@param?content

?* Guardar contenido

?*?@param?imgType

?*imageType

?*?@param?size

?*Tamaño del código QR

?*?@return

?*/

private?BufferedImage?qRCodeCommon(String?content,?String?imgType,?int?size)?{

BufferedImage?bufImg?=?null;

¿intentar?{

p>

Qrcode?qrcodeHandler?=?new?Qrcode();

//Establezca la tasa de error del código QR, puede elegir L(7%), M(15%), Q ( 25%), H (30%), cuanto mayor sea la tasa de error, menos información se podrá almacenar, pero menor será el requisito de claridad del código QR

qrcodeHandler.setQrcodeErrorCorrect('M');

p>

qrcodeHandler.setQrcodeEncodeMode('B');

///?Establezca el tamaño del código QR, entre 1 y 40. Cuanto mayor sea el valor, mayor será el tamaño. , y más información se puede almacenar

qrcodeHandler.setQrcodeVersion(size);

///?Obtenga la matriz de bytes del contenido y establezca el formato de codificación

byte[]?contentBytes?=?content. getBytes("utf-8");

///?Tamaño de imagen

int?imgSize?=?67?+? 12?*?(tamaño?-?1);

bufImg?=?new?BufferedImage(imgSize,?imgSize,

BufferedImage.TYPE_INT_RGB);

Graphics2D?gs?=?bufImg. createGraphics() ;

//Establecer el color de fondo

gs.setBackground(Color.WHITE);

gs.clearRect(0,?0,?imgSize,? imgSize);

//Establecer el color de la imagen>?BLACK

gs.setColor(Color.BLACK);

///?Establezca el desplazamiento. No establecer el desplazamiento puede provocar errores de análisis

int?pixoff?=?2;

///?Contenido de salida >?Código QR

if( contentBytes.length?>?0?&&?contentBytes.length?

booleano[][]?codeOut?=? qrcodeHandler.calQrcode(contentBytes);

for?(int?i?=?0;?i?

for?(int ?j?=?0;?j?

if(codeOut[j][i])?{

gs.fillRect (j?*?3?+?pixoff,?i ?*?3?+?pixoff,?3,?3);

}

}

}

}

}

} más?{

throw?new?Exception(" QRCode?content?bytes? ¿longitud?=?")?

+?contentBytes.length?

}

gs.dispose();

bufImg. Flush();

}? {

e.printStackTrace();

}

return?bufImg;

}

/* *? *?Analizar código QR (QRCode)? *?@par

soy?imgPath? *? */?

¿público?{

//?QRCode?

¿Archivo?

Imagen en búfer?bufImg ?=?null;?

Cadena?

intenta{?

bufImg?=?ImageIO.read(imageFile);?

QRCodeDecoder?decoder?=?new?QRCodeDecoder();?

content?=?new?String(decoder.decode(new?TwoDimensionCodeImage(bufImg)),?" utf-8");

}?{

System.out.println("Error: ?")??+?e.getMessage());?

e.printStackTrace ();?

}?{

System.out.println("Error: ?")??+?dfe.getMessage());?

dfe.printStackTrace();?

}?

retorno?

}?

/** *?Parse ¿Código QR? *?@param? *? */?

¿público?{

¿Imagen en búfer?

¿Cadena?

probar{

p>

bufImg?=?ImageIO.read(entrada);?

QRCodeDecoder?decoder?=?new?QRCodeDecoder();?

contenido ?=?nuevo? String(decoder.decode(new?TwoDimensionCodeImage(bufImg)),?" utf-8");

}?{

System.out.println( "Error:?" ??+?e.getMessage());?

e.printStackTrace();?

}?{

Sistema .out.println( "Error: ?")??+?dfe.getMessage());?

dfe.printStackTrace();?

}?

¿regresar?

}?

¿público?{

¿Cadena?G:/TDDOWNLOAD/Michael_QRCode.png";?

String?Hola, chicos grandes, chicos, ¡bienvenidos a QRCode! "?+?"\nMyblog?[??]" ?+?"\nEMail?[?sjsky007@gmail.com?]";?

¿Código de dos dimensiones?

handler.encoderQRCode(encoderContent,?imgPath,?" png");?

//?try?{? //? OutputStream?output?=?new?FileOutputStream(imgPath);?

//?handler.encoderQRCode(content,?output);?

//?}

/?{

//?e.printStackTrace();?

//?}?

Sys

tem.out.println("========encoder?success");?

String?decoderContent?=?handler.decoderQRCode(imgPath);?

System.out.println("Los resultados del análisis son los siguientes:");?

System.out.println(decoderContent);?

System.out.println("=== =====decoder?success!!!") ;?

}?

}

El segundo fragmento de código: import?java.awt .image.BufferedImage;?

importar?jp.sourceforge.qrcode.data.QRCodeImage;?

público

público?TwoDimensionCodeImage(BufferedImage?bufImg) ?{

this.bufImg?=?bufImg;?

}?

@Override?{

return?bufImg.getHeight ();?

}?

@Override?{

return?bufImg.getRGB(x,?y);?

}?

@Override?{

return.bufImg.getWidth();?

}

}

}?