>  기사  >  Java  >  Java를 사용하여 QR 코드 코드 공유 생성

Java를 사용하여 QR 코드 코드 공유 생성

巴扎黑
巴扎黑원래의
2017-07-18 15:11:101614검색

QR코드의 특징:

1. 고밀도 인코딩, 대용량 정보 용량

일반 바코드 정보보다 큰 문자 1850자, 숫자 2710자, 한자 500자 이상까지 수용 가능 용량은 수십배 정도 더 큽니다.

2. 넓은 코딩 범위

이 바코드는 그림, 소리, 텍스트, 서명, 지문 및 기타 디지털 정보를 인코딩할 수 있으며 이를 바코드로 표현할 수 있습니다. 이미지 데이터.

3. 강력한 내결함성 및 오류 수정 기능

2D 바코드가 천공, 얼룩 등으로 부분적으로 손상되어도 정확하게 판독할 수 있으며, 손상된 부분이 있으면 정보를 복원할 수 있습니다. 50%에 도달합니다.

4. 높은 디코딩 신뢰성

일반 바코드 디코딩 오류율이 2ppm에 비해 훨씬 낮으며 비트 오류율은 천만분의 1을 초과하지 않습니다.

5. 암호화 조치를 도입할 수 있습니다

기밀유지 및 위조 방지가 좋습니다.

6. 저비용, 제작 용이, 내구성

위의 특성으로 인해 QR 코드가 점점 대중화되고 있으며 그 응용도 점점 더 광범위해지고 있습니다. (자세한 내용은 바이두 백과사전, 소개를 참조하세요. 는 이 기사의 초점이 아닙니다.) 따라서 QR 코드를 개발하는 방법을 아는 것은 매우 좋은 지식 보유이므로 이 기사에서는 QR 코드를 생성하고 구문 분석하는 방법을 설명합니다.

이 글에서는 zxing을 통한 QR 코드 생성 및 분석에 대해 설명합니다. 코드를 직접 입력하기만 하면 됩니다.

import java.io.File;import java.io.IOException;import java.nio.file.Path;import java.util.HashMap;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class TestZXing {public static void main(String[] args) {int width=300;int height=300;
        String format="png";
        String contents="www.baidu.com";
        HashMap map=new HashMap();
        map.put(EncodeHintType.CHARACTER_SET, "utf-8");
        map.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.M);
        map.put(EncodeHintType.MARGIN, 0);try {
            BitMatrix bm = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height);
            Path file=new File("D:/img.png").toPath();
            MatrixToImageWriter.writeToPath(bm, format, file);
        } catch (WriterException e) {
            e.printStackTrace();
        } catch (IOException e) {            e.printStackTrace();
        }
    }
}

위 코드는 www.baidu.com 콘텐츠 링크로 QR 코드를 생성합니다.

이 QR코드를 파싱하는 코드는 다음과 같습니다

import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.HashMap;import javax.imageio.ImageIO;import com.google.zxing.BinaryBitmap;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatReader;import com.google.zxing.NotFoundException;import com.google.zxing.Result;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.google.zxing.common.HybridBinarizer;public class TestRead {public static void main(String[] args) {try {
            MultiFormatReader reader=new MultiFormatReader();//需要详细了解MultiFormatReader的小伙伴可以点我一下官方去看文档File f=new File("D:/img.png");
            BufferedImage image=ImageIO.read(f);
            BinaryBitmap bb=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
            HashMap map =new HashMap();
            map.put(EncodeHintType.CHARACTER_SET, "utf-8");
            Result result = reader.decode(bb,map);
            System.out.println("解析结果:"+result.toString());
            System.out.println("二维码格式类型:"+result.getBarcodeFormat());
            System.out.println("二维码文本内容:"+result.getText());
        } catch (NotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
실행 결과는 다음과 같습니다

解析结果:www.baidu.com
二维码格式类型:QR_CODE
二维码文本内容:www.baidu.com

특정 jar 패키지는 직접 다운로드 받으실 수 있습니다

링크: 비밀번호: kcjx

위 내용은 Java를 사용하여 QR 코드 코드 공유 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.