この記事では、角を丸くするためのjsキャンバスの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。 角の丸い画像のコード実装: <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>タイトル</title> </head> <body style="background: rgba(199,237,204,1)"> <div style="display:flex; flex-direction: row"> <!-- スタイルを使用してキャンバスの幅と高さを設定すると、描画されたコンテンツが Firefox 上で垂直方向に伸びます。 。 。 --> <canvas id="drawing" width="400px" height="400px">描画するキャンバス</canvas> <pre id="コンテナ" style="margin: 10px"/> <img src=//img.jbzj.com/file_images/article/202109/202191115608734.jpg> </div> </本文> <script type="text/javascript"> window.onlοad = 関数 () { var 描画 = document.getElementById('描画'); 描画コンテキストを取得する場合 print('サポート') RoundRectFunc() を追加します。 var context = drawing.getContext('2d'); 描画(コンテキスト); } それ以外 { print('not') を出力します。 } } 関数draw(コンテキスト) { context.fillStyle = '赤'; var image = document.images[0]; context.roundRect(0,0,image.width/2,image.height/2,30,true) context.globalCompositeOperation='ソースイン'; context.drawImage(画像、0、0、画像の幅/2、画像の高さ/2) // toImage(); } 関数addRoundRectFunc() { CanvasRenderingContext2D.prototype.roundRect = 関数 (x, y, 幅, 高さ, 半径, 塗りつぶし, ストローク) { if (typeof ストローク == "未定義") { ストローク = true; } if (typeof radius === "undefined") { 半径 = 5; } このメソッドは、次のようになります。 this.moveTo(x + 半径, y); this.lineTo(x + 幅 - 半径, y); this.quadraticCurveTo(x + 幅, y, x + 幅, y + 半径); this.lineTo(x + 幅、y + 高さ - 半径); this.quadraticCurveTo(x + 幅、y + 高さ、x + 幅 - 半径、y + 高さ); this.lineTo(x + 半径, y + 高さ); this.quadraticCurveTo(x, y + 高さ, x, y + 高さ - 半径); this.lineTo(x, y + 半径); this.quadraticCurveTo(x, y, x + 半径, y); this.closePath(); if (ストローク) { この.stroke(); } if (fill) { これを塗りつぶします。 } }; } 関数toImage() { var imageUri = drawing.toDataURL('image/png'); var imageTag = document.createElement('img'); imageTag.style = '余白:10px;幅:200px;高さ:200px' イメージタグ.src = イメージUri; document.body.appendChild(画像タグ) } 関数 print(txt) { document.getElementById("コンテナ").innerHTML += ('\n') + txt; } document.body.onclick = 関数(){ ウィンドウの場所を再読み込み() } console.log = 印刷; </スクリプト> </html> 効果画像: 小さなコードを追加します: キャンバスは角が丸い画像 (アバターなど) を生成します 円画像(ctx, 画像, x, y, r) { ctx.save(); var d = 2 * r; var cx = x + r; var cy = y + r; ctx.arc(cx, cy, r, 0, 2 * Math.PI); ctx.clip(); ctx.drawImage(画像, x, y, d, d); ctx.restore(); } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Centos7 構成 fastdfs および nginx 分散ファイル ストレージ システムの実装プロセス分析
1. バックアップソースリストUbuntu のデフォルトのソースは国内サーバーではないため、更新され...
公式ウェブサイトアドレス: https://dev.mysql.com/downloads/mysq...
現在、クラウドサーバーに nginx をインストールする際、最初に zlib などの依存ライブラリを...
この記事では、淘宝虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...
導入:多くの場合、さまざまな選択ステートメントを使用して必要なデータを照会した後、多くの人は作業が正...
CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...
重要なイベントまであと何日あるか知りたいですか? Linux bash と date コマンドが役に...
この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...
1. インターネットで長時間検索しましたが、判定表が存在するかどうかがわからなかったので、漠然と削除...
同時アクセスの場合、非反復読み取りやその他の読み取り現象が発生する可能性があります。高い同時実行性に...
目次最初にコールバック関数を使用するes6 非同期処理モデルこの非同期モデルに合わせたAPI: pr...
1. はじめにMySQL が起動すると、BufferPool が初期化されます。クエリ操作を実行する...
共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...
目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...
目次序文2次元配列、一方向基本インターフェースのマッピング幅優先、包括的検索マップ編集経路探索アルゴ...