この記事では、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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: dockerコンテナの再起動後に/etc内の一部の設定ファイルがリセットされる問題を解決します
>>: MySQL 5.6 マスタースレーブエラー報告の実践記録
teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同...
この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...
腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...
この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介しま...
1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...
Docker コンテナのタイムゾーンがホストマシンと一致しているかどうかを確認するにはどうすればよい...
この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...
この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...
目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...
これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...
•CSSには多くのセレクターがあります。複数のセレクターを同じ要素に適用するとどうなるでしょうか? ...
1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...
リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...
1. 目的この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であ...
Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...