JavaScript キャンバスで 9 マスのグリッドカットの効果を実現

JavaScript キャンバスで 9 マスのグリッドカットの効果を実現

この記事では、9グリッドカット効果を実現するためのキャンバスの具体的なコードを紹介します。具体的な内容は次のとおりです。

最初のページ表示

コードに直接

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <meta http-equiv="X-UA-compatible" content="ie=edge">
    <title>ドキュメント</title>
    <スタイル>
        体 {
            テキスト配置: 中央;
        }
        
        キャンバス {
            境界線: 1px 実線;
        }
        
        .newcanvas {
            幅: 316ピクセル;
            高さ: 316px;
            マージン: 自動;
        }
        
        .newpohoto、
        .ダウンロード{
            幅: 300ピクセル;
            高さ: 40px;
            行の高さ: 40px;
            マージン: 自動;
            背景色: コーンフラワーブルー;
            境界線の半径: 5px;
            カーソル: ポインタ;
            マージン: 10px 自動;
            色: 白;
        }
    </スタイル>
</head>

<本文>
    <h3>キャンバスを使用して9グリッドカットの効果を実現する</h3>
    <div class="mycanvas">
        <キャンバス幅="300" 高さ="300" id="mycnavas"></キャンバス>
    </div>
    <div class="newpohoto">
        写真の切り取りを開始する</div>
    <div class="newcanvas">
        <キャンバス幅="100" 高さ="100" id="img1"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img2"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img3"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img4"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img5"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img6"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img7"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img8"></キャンバス>
        <キャンバス幅="100" 高さ="100" id="img9"></キャンバス>
    </div>
    <div class="ダウンロード">
        画像をダウンロード</div>
    <スクリプト>
         var canvas = document.getElementById("mycnavas"); //次に画像を配置します var cxt = mycnavas.getContext("2d");
        var img = 新しい画像();
        画像を拡大
        window.onload = 関数() {
            cxt.drawImage(img, 0, 0, 400, 300); //画像の位置を描画します} 
        var arr = []; //切り取った画像を配列に保存する document.getElementsByClassName("newpohoto")[0].onclick = function() {
            var q = 1;
            (var i = 0; i < 3; i++) の場合 {     
                (var j = 0; j < 3; j++) の場合 {
                    var data = cxt.getImageData(j * 100, i * 100, 400, 100); //「コピー」関数と同様 var img = document.getElementById("img" + q)
                    var newcxt = img.getContext("2d");
                    newcxt.putImageData(data, 0, 0); //「貼り付け」関数と同様 arr.push(console.log(img.toDataURL(q + ".png"))) //toDataURL() メソッドの 2 つのパラメーター: DataURL(type, encodingOptions) type は、image/png、image/jpeg、image/webp など、base64 エンコードに変換した後のイメージの形式を指定します。デフォルトは image/png 形式です。                                     
                    q++;
                    コンソールログ(arr)
                }
            }

        }
         //切り取った画像をダウンロードする var arr = [];
        document.getElementsByClassName('download')[0].onclick = function() {
            (var i = 0; i < 9; i++) の場合 {
                var a = document.createElement('a');
                a.download = 'img' + (i + 1);
                a.href = arr[i];
                ドキュメント本体に子要素を追加します。
                クリック();
            }
        }
    </スクリプト>

</本文>

</html>

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

以下もご興味があるかもしれません:
  • JavaScript+キャンバスで9マスのグリッドアプレットを作成する
  • JavaScript を使用した画像カット効果の例
  • JavaScript 画像切り取り効果(虫眼鏡)

<<:  Linux で FTP イメージ サーバーをインストールして展開する方法

>>:  MySQL トリガーの原理と使用例の分析

推薦する

HTMLテキスト内のすべてのタグを置き換える方法

(?i) は大文字と小文字を区別しないことを意味します。大文字と小文字をすべて置き換えます。 htm...

Hadoop 3.2.0 クラスターの構築に関する一般的な考慮事項

1つのポートの変更バージョン 3.2.0 では、ネームノード ページ ポートは 9870、データノー...

CSS 配置レイアウト (位置、配置レイアウト スキル)

1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...

JavaScript 関数呼び出し、適用、バインド メソッドのケース スタディ

要約する1. 類似点どちらも、ターゲット関数が実行されると内部の this ポインターを変更できます...

Portainer を使用して複数の Docker コンテナ環境を管理する方法を説明します。

目次Portainerは複数のDockerコンテナ環境を管理します2. Dockerを管理する2.1...

Ubuntu 20.04 aptの国内ソースを変更する方法

UPD 2020.2.26 現在、Ubuntu 20.04 LTSはまだリリースされていないため、チ...

docker+gitlab+gitlab-runnerの詳細なデプロイメント

環境サーバー: centos7クライアント: ウィンドウCentos7 に docker+gitla...

WeChatアプレットはシンプルな計算機を実装する

WeChatアプレットの簡単な計算機は参考用です。具体的な内容は次のとおりです。 1. はじめに1....

DockerでPython環境をパッケージ化するプロセスの詳細な説明

docker パッケージング Python 環境の手順は次のとおりです。 1 pip listの下に...

MySQL の NOT IN 充填ピットの NULL 列の問題の解決方法

以前、会社で小さな機能に取り組んでいたとき、特定の状況でデータがいくつあるかを数えてから問題を修正し...

JavaScript を使用してタイムラインとアニメーション効果を実装するためのサンプル コード (フロントエンドのコンポーネント化)

目次コードのクリーニングJavaScript の「フレーム」 「フレーム」の実装方法1. 間隔を設定...

MySQL RouterはMySQLの読み取りと書き込みの分離を実装します

目次1. はじめに2. MySQLルーターを構成する2.1 MySQLルーターのインストール2.2 ...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...

Web デザイナーにはどのような知識体系が必要ですか?

製品設計者は、複雑で大規模な製造システムと多様な市場に直面しているため、知識体系には幅広さと深さの両...

優れた登録プロセスの手順

ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...