jQuery キャンバスで画像検証コード例を描画する

jQuery キャンバスで画像検証コード例を描画する

この記事では、jQuery Canvasの描画画像検証コードの具体的なコードを例として紹介します。具体的な内容は次のとおりです。

CS

.識別コード{
    位置: 絶対;
    右: 6px;
    上位: 50%;
    幅: 118ピクセル;
    高さ: 40px;
    マージン: -21px 0 0 0;
}

html

<span id="コード" class="識別コード">
  <canvas class="show-captcha" id="canvas" style="幅: 100%; 高さ: 100%;"></canvas>
</span>

JS

/**検証コードの画像を描画する**/
関数drawPic() {
    var キャンバス = document.getElementById("キャンバス");
    var 幅 = キャンバス.幅;
    var 高さ = キャンバスの高さ;
    //キャンバスの 2D 描画環境を取得します。var ctx = canvas.getContext('2d'); 
    ctx.textBaseline = '下';
    /**背景色を描画する**/
    ctx.fillStyle = ランダムカラー(180, 240);
    //色が暗すぎると鮮明でない場合があります ctx.fillRect(0,0,width,height);
    /**テキストを描画する**/
    var str ='ABCEFGHJKLMNPQRSTWXY123456789abcefghjklmnpqrstwxy';
    var コード="";
    //4つの検証コードを生成する for(var i = 1;i <= 4; i++) {
        var txt = str[randomNum(0,str.length)];
        コード=コード+txt;
        ctx.fillStyle = ランダムカラー(50,160);
        // フォントの色をランダムに生成します ctx.font = randomNum(90,110) +'px SimHei';
        // フォントサイズをランダムに生成します var x = 10 + i * 50;
        var y = randomNum(100, 135);
        var deg = randomNum(-30, 30);
        //座標の原点と回転角度を変更します ctx.translate(x, y); 
        ctx.rotate(deg * Math.PI /180); 
        ctx.fillText(txt,0,0);
        //座標原点と回転角度を復元します ctx.rotate(-deg * Math.PI /180);
        ctx.translate(-x, -y);
    }
        
    /**干渉線を描く**/
    (var i=0;i<3;i++) の場合 {
        ctx.strokeStyle = ランダムカラー(40, 180);
        ctx.beginPath();
        ctx.moveTo(ランダム数値(0,幅/2), ランダム数値(0,高さ/2));
        ctx.lineTo(ランダム数値(0,幅/2), ランダム数値(0,高さ));
        ctx.stroke();
    }
    /**干渉点を描画する**/
    (var i=0;i <50;i++) の場合 {
        ctx.fillStyle = ランダムカラー(255);
        ctx.beginPath();
        ctx.arc(randomNum(0, 幅), randomNum(0, 高さ),1,0,2* Math.PI);
        ctx.fill();
    }
    戻りコード;
}
/**乱数を生成する**/
関数 randomNum(最小値, 最大値) {
    Math.floor(Math.random() * (max - min) + min) を返します。
}
/**ランダムな色を生成する**/
関数 randomColor(最小値, 最大値) {
    var r = randomNum(最小値, 最大値);
    var g = randomNum(最小値, 最大値);
    var b = randomNum(最小値, 最大値);
    "rgb(" + r + "," + g + "," + b + ")" を返します。
}

呼び出しインスタンス

$("#code").unbind('click').click(function(e){
    e.preventDefault();
    コードを作成します。
});
//検証コードを生成する function createCode(){
  検証コードエラーカウント = 0;
  ランダムコード = drawPic();
  ランダムコードを返します。
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JQueryはシンプルな検証コードプロンプトソリューションを実装します
  • jQueryは携帯電話で認証コードを送信するためのカウントダウンコードを実装します
  • jQueryは検証コードの送信と60秒のカウントダウン機能を実装します
  • 確認コードを取得するためにクリックしてから 60 秒以内に再取得を防止する jQuery プラグイン
  • 静的 HTML 検証コード検証を実装する jQuery プラグイン
  • jQuery をクリックして検証コードボタンとカウントダウン機能を取得する
  • jQueryは検証コード機能を実装します
  • jQueryはシンプルな検証コード機能を実装します
  • jQuery は SMS 認証コードを取得するためのフォームを実装します
  • jQuery は携帯電話で認証コードを送信するカウントダウン効果のコード共有を実装します

<<:  dockerコンテナの再起動後に/etc内の一部の設定ファイルがリセットされる問題を解決します

>>:  MySQL 5.6 マスタースレーブエラー報告の実践記録

推薦する

Linux teeコマンドの使い方の詳しい説明

teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

Apache ab同時負荷ストレステストの実装方法

腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...

jsシミュレーションでJingdongの詳細ページで画像を拡大する効果を実現

この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介しま...

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

Dockerコンテナのタイムゾーン調整操作

Docker コンテナのタイムゾーンがホストマシンと一致しているかどうかを確認するにはどうすればよい...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

Dockerコンテナレイヤーの概念の詳細な説明

目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...

IEの送信フォームの記録履歴クリックリターン情報を実現するためのCSSスタイルコントロールはまだ残っています

これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...

CSS ウェイト値(カスケード)の例の詳細な説明

•CSSには多くのセレクターがあります。複数のセレクターを同じ要素に適用するとどうなるでしょうか? ...

HTMLの基礎を詳しく解説(第2部)

1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...

Linux inotifyリアルタイムバックアップの実装方法の詳細説明

リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...

CSS3 クリアフロートメソッドの例

1. 目的この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であ...

Linuxディレクトリ構造の詳細な紹介

Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...