[ツール]画像検証コード

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; 
    } 
    // 二次元コード生成手段の==== =======方法================================ //

おすすめ

転載: www.cnblogs.com/itxs/p/12066588.html