Javaの背景認証コード生成、base64文字列を返します。
// ====二次元コード生成ツール方法====================================== = // / ** *使用方法 *インポートjava.awt.Graphics2D; インポートjava.awt.image.BufferedImage; BufferedImageの新しい新しいイメージ=のBufferedImage(幅、高さ、BufferedImage.TYPE_INT_RGB); Graphics2DのG =(Graphics2Dの)image.getGraphics (); // 1、背景色 Utils.setBackGround(G、幅、高さ); // 2、設定境界 Utils.setBorder(G、幅、高さ); // 3、線画干渉 Utils.drawRandomLine(G 、幅、高さ); // 4、書き込み乱数 列verifycode = Utils.drawRandomNum(G); // 5、ブラウザ宛 )(g.dispose。 BOS =新しい新しいByteArrayOutputStream ByteArrayOutputStream(); ImageIO.write(画像、 "JPEG"、BOS); バイト[] = BUF bos.toByteArray(); 文字列IMG = Base64Util.encode(BUF); // "/ 9J / 4AAQSkZJRgABAgA" -画像Base64では )(bos.close; リターンIMG; * / / ** *説明グラフィカルコードを生成 * @param 幅デフォルト画像96の幅 * @paramの高さデフォルト画像42の高さがある * @return 画像BASE64、IMGファイルstring "/ 9J / 4AAQSkZJRgABAgA"除去"データ:画像/ JPEG、BASE64 、" 一部 * @author * @date 2019インディアン9越20 Riを * / パブリック 静的文字列imgVerifycode(INT幅は、int型の高さ)がスロー{例外の 場合(幅<96 ){ 幅 = 96 。 } であれば(高さ<42 ){ 高さ = 42 。 } バッファ画像イメージ = 新しいBufferedImageの(幅、高さ、BufferedImage.TYPE_INT_RGB)。 Graphics2D G = (のGraphics2D)image.getGraphics(); // 1、设置背景色 setBackGround(G、幅、高さ)。 // 2、设置边框 setBorder(G、幅、高さ)。 //3、線画干渉 drawRandomLine(G、幅、高さ); // 4、乱数ノンス記録戻る。 = verifycodeストリングdrawRandomNum(G); // 5、ブラウザ書き込ま。 g.dispose(); ByteArrayOutputStream BOS = 新しい新しいByteArrayOutputStream(); ImageIO.write(画像、 "JPEG" 、BOS); バイト [] = BUF bos.toByteArray(); 文字列IMG = Base64Util.encode(BUF); // "/ 9J / 4AAQSkZJRgABAgA" -画像のBase64 bos.close(); 戻りIMGは; } // 背景色設定 パブリック 静的 ボイドsetBackGround(グラフィックG、整数幅、整数高さ){ g.setColor(Color.WHITE)。 g.fillRect( 0、0 、幅、高さ)。 以下のために(INT I = 0; I <120; I ++ ){ int型、X =(INT)(Math.random()* 幅)。 INT Y =(INT)(Math.random()* 高さ)。 int型赤=を(int型)(Math.random()* 255 ); int型グリーン=(int型)(Math.random()* 255 ); int型青=(int型)(Math.random()* 255 ); g.setColor(新しいカラー(赤、緑、青))。 g.drawOval(X、Y、 1、0 ); } } // 设置边框 パブリック 静的 ボイドsetBorder(グラフィックG、整数幅、整数高さ){ g.setColor(Color.LIGHT_GRAY)。 g.drawRect( 1、1、幅2 - 、高- 2 )。 } // 画干扰线 パブリック 静的 ボイドdrawRandomLine(グラフィックG、整数幅、整数高さ){ g.setColor(Color.GREEN)。 以下のために(int型私は= 0; I <5; I ++){ のInt X1 = 新しい新しいランダム()nextInt(幅);. のInt Y1 = 新しい新しいランダム()nextInt(高さ);. のInt X2 = 新しい新しいザ・ランダム()nextInt(幅)。 INT Y2 = 新しい新しいザランダム()nextInt (高さ); g.drawLine(X1、Y1、X2、Y2); } } // 乱数生成 パブリック 静的文字列drawRandomNum(のGraphics2D G){ // フォントの色設定 g.setColor(Color.REDを); // セットフォントスタイル g.setFont(新新フォント(「ゴシック」、Font.BOLD、26)); 文字列rand4 = "" ; int型 X = 5; // フォントの位置 のために(INT I = 0; I <4; I ++){ //は4つのランダムな文字列を生成 INT度= 新しい新しいザランダム()nextIntを( )30%; // 回転角 int型のインデックス= 新しい新しいランダム()nextInt(STR_NUM.length(。)); 文字列CH = STR_NUM.charAt(インデックス)+ "" ; rand4 + = CH; g.rotate(度 *数学.PI / 180、X、20である); g.drawString(CH、X、 30)。 g.rotate(*にMath.PI -degree / 180、X、20である); X + = 24; // フォントの位置右15ピクセル } 戻りrand4; } // 二次元コード生成手段の==== =======方法================================ //