二次元コード生成のJava実装は、図文脈。

pom.xml依存性

  < -二维码生成! - > 
        < -のhttps:// mvnrepository.com/artifact/com.google.zxing/core - > 
        <依存> 
            <groupIdを> com.google.zxing </ groupIdを> 
            <たartifactId>コア</たartifactId> 
            <バージョン> 3.0.1 </バージョン> 
        </依存> 
/ ** 
 *クラス名:QRCodeMax 
 *クラス説明:生成2次元コードの背景画像+テキスト+ツールの説明
 *作成:またハンサム、良いに何も人のために
 *作成:2018年12月日付X X Xポイントのxポイント秒
 *修正:2019年2月時点X X X X日分秒
 *注レビュー:更新の設定パラメータ
 * @version :2.0 
 * 
 * / 
パブリック クラスQRCodeMax { 
    
 
   // テキスト表示
   プライベート 静的 最終 int型の QRCOLOR = 0x201f1f; / / 二次元コードの色:黒
   プライベート 静的 最終 INT BGWHITE = 0xFFFFFFの; // 次元コード背景色:白
 
    // セット二次元QRコードパラメータ情報
    プライベート 静的地図<EncodeHintType、OBJECT> =ヒント新しい新HashMapの<EncodeHintType、OBJECT> (){
         プライベート 静的 最終的な ロングのserialVersionUID = 1L ; 
        { 
            PUT(EncodeHintType.ERROR_CORRECTION、ErrorCorrectionLevel.M); // 設定されたエラー訂正コードは、二次元QRレベル(Hが最高レベルである)である 
            PUT(EncodeHintType。 CHARACTER_SET、 "UTF-8"); // 設定された符号化 
            PUT(EncodeHintType.MARGIN、0); // 白い境界
        } 
    }; 
 
       / ** 
        * +背景画像の二次元コードを生成するためには、テキスト+で説明
        * @param CodeFile図世代アドレス
        * @param bgImgFile背景画像アドレス
        * @param 幅幅の二次元コード 
        *@paramの二次元コードの高さの高さ
        * @param qrUrl次元コード認識アドレス
        * @paramのノートテキスト記述。1 
        * @paramのTUIテキスト記述2 
        * @paramのサイズテキストサイズ
        * @param 二次元コードのImageSX x軸方向
        * @param ImageSY二次元コードのy軸方向
        * @param テキスト1X説明、軸方向1X 
        * @param テキスト1Y説明、1Y軸方向
        * @param テキスト2X説明、軸方向2X 
        * @param テキスト2Y説明、軸方向2Y
         * / 
        パブリック 静的 ボイドCreatQRCode(ファイルCodeFile、ファイルbgImgFile、整数WIDTH、整数の高さ、文字qrUrl、
                文字列注、文字列TUI、整数サイズ、整数ImageSX、整数ImageSY、整数テキスト1X、整数テキスト1Y 
                、整数テキスト2X、整数テキスト2Y){ 
            試み{ 
                MultiFormatWriter multiFormatWriter = 新しい新しいMultiFormatWriter();
                 // パラメータの順序である:エンコードされたコンテンツ、タイプコード、パラメータ設定画像幅、生成画像の高さ、発生 
                BitMatrix BM = multiFormatWriter.encode(qrUrl、BarcodeFormat.QR_CODE、幅、高さ、ヒント)を、
                バッファ画像イメージ = 新しい新しいBufferedImageの(WIDTH、HEIGHT、BufferedImage.TYPE_INT_RGB); 
 
                //二次元コードブラック(0xFFFFFFFFの)ホワイト(0xFF000000)に設定されているビットマップイメージデータ作成2つの色を使用して起動
                するためのINT X = 0; X <WIDTH; X ++ ){
                     ためINT Y = 0; Y <HEIGHT; Y ++ ) { 
                        image.setRGB(X、Y、bm.get(X、Y) QRCOLOR:BGWHITE); 
                    } 
                } 
                
                / * 
                 *背景画像
                 * / 
                BufferedImageのbackgroundImageの = ImageIO.read(bgImgFile);
                 INT bgWidth = backgroundImage.getWidth( );
                 INT qrWidth = image.getWidth()。
                // 距離X背景画像側、中心
                INT DISX =(bgWidth-qrWidth) - ImageSXは;
                 // 側から距離y * * * * 
                INT DISY = ImageSY; 
                のGraphics2D RNG = backgroundImage.createGraphics(); 
                rng.setComposite (AlphaComposite.getInstance(AlphaComposite.SRC_ATOP)); 
                rng.drawImage(イメージ、DISX、DISY、幅、高さ、NULL ); 
 
                / * 
                 *書かれた記述パラメータ
                 * / 
                
                カラーの、textColor = Color.white; 
                rng.setColor(の、textColor) ; 
                backgroundImageでrng.drawImage( 0、0、NULL);
                 // フォントタイプとサイズ(BOLD太字/ PLAIN通常)設定 
                rng.setFont(新しい新しいフォント( "マイクロソフトエレガントブラック、ゴシック" 、Font.BOLD、サイズ));
                 // フォント色設定
                rng.setColor(カラー.black);
                 INT strWidth = rng.getFontMetrics()stringWidth(注);. 
                
                // 文字表示位置1 
                のint disx1 =(bgWidth-strWidth)-text1X; //  
                rng.drawString(注、disx1、テキスト1Y); / / 垂直
                
                @の文字表示位置2 
                int型 disx2 =(bgWidth-strWidth)-text2X; // 程度 
                rng.drawString(TUI、disx2、テキスト2Y); //上下
                
                rng.dispose()。
                画像 = backgroundImageの。
                image.flush(); 
                ImageIO.write(画像、 "PNG" 、codeFile)。
            } キャッチ(例外e){ 
                e.printStackTrace(); 
            } 
        } 
        
        / ** 
         *测试
         * @paramの引数
          * / 
        パブリック 静的 ボイドメイン(文字列[]引数){ 
            ファイルbgImgFile = 新しいファイル( "D://tu/bg.png")。// 背景图片 
            ファイルQrCodeFile =新しい新しいファイル(「D://tu/myqrcode.png」); // 写真場所生成する 
            文字列のURLを=「https://blog.csdn.net/weixin_38407595」; // 2次元コードリンク 
            文字列のノート=「」; // テキスト記述 
            ストリングTUI =「」; // テキスト記述
            
            
            //は、その二次元コード生成促進
            // アドレスの生成、アドレス背景、二次元コードの幅は、二次元コード、二次元アドレスコード認識、テキスト記述の高さを1 、2テキスト記述、テキストのサイズ、画像のx軸方向、y軸方向の画像、テキスト1 || 2XY軸 
            CreatQRCode(QrCodeFile、bgImgFile、148、 148、URL、メモ、TUI、38、408、123、0、0 、410、210 ); 
 
        } 
}

おすすめ

転載: www.cnblogs.com/qingmuchuanqi48/p/12079394.html