js キャンバスは角丸画像を実現します

js キャンバスは角丸画像を実現します

この記事では、角を丸くするための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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • ドラッグ可能な美しい丸い角の特殊効果ポップアップレイヤーの完全な例を実現するための JS+CSS
  • 抽象的な CSS 丸角効果を js で実装しました!!
  • js を使用して CSS の丸い角を生成および更新する

<<:  Centos7 構成 fastdfs および nginx 分散ファイル ストレージ システムの実装プロセス分析

>>:  Linuxで同一ファイルを見つける方法

推薦する

HTML のテキストエリアの改行問題の概要

最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...

JavaScript ベースのランダム点呼システムの実装

この記事では、ランダムロールコーラーを実装するためのJavaScriptの具体的なコードを参考までに...

ウェブサイトのハイパーリンクを開く方法に関する議論

新しいウィンドウが開きます。 利点: ユーザーがリンクをクリックしても、現在閲覧しているコンテンツは...

NginxにおけるRewriteのリダイレクト設定と実践の詳しい解説

1: アドレス書き換えとア​​ドレス転送の意味を理解する。アドレス書き換えとア​​ドレス転送は異なる...

HTML+JS に基づくシンプルな年齢計算ツールの実装

目次序文デモンストレーション効果HTMLコードCSSコードJavascriptコードデモアドレス序文...

MySQL での r2dbc の使用に関する詳細な理解

導入MySQL は、私たちが日常業務で使用する非常に一般的なデータベースです。MySQL は現在 O...

シンプルな画像ドラッグ効果を実現する js

この記事では、簡単な画像ドラッグ効果を実現するためのjsの具体的なコードを参考までに紹介します。具体...

vue3 で vue-router を使用するための完全な手順

序文ルーティングの管理は、ほとんどのシングルページ アプリケーションにとって不可欠な機能です。 Vu...

sqlとmysqlの違いは何ですか?

SQL とは何ですか? SQL はデータベースを操作するために使用される言語です。 SQL はすべ...

JSの基本概念の詳細な紹介

目次1. JSの特徴1.1 マルチパラダイム1.2 説明1.3 シングルスレッド1.4 ノンブロッキ...

Vueはファイルのアップロードとダウンロードを実装します

この記事では、参考までにVueのファイルのアップロードとダウンロードの具体的なコードを紹介します。具...

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

Tomcat サーバー入門の超詳細なチュートリアル

目次1. Tomcat の概念–1、サーバー–2、ウェブサーバー–3、Tomcatサーバー次にTom...

Vueプロジェクトがグラフィック検証コードを実装

この記事の例では、グラフィック検証コードを実装するためのVueプロジェクトの具体的なコードを参考まで...

純粋な CSS ドロップダウン メニュー

成果を達成する実装コードhtml <div id="コンテナ"> &...