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 トリガーの原理と使用例の分析

推薦する

BFCとは何ですか? CSS 疑似要素を使用してフロートをクリアする方法

BFCコンセプト:ブロック フォーマット コンテキストは、BFC 内の要素を外部の要素から分離する独...

MySQL 重複インデックスと冗長インデックスの例の分析

この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...

Windows での MySQL データベースのマスター/スレーブ構成チュートリアル

WindowsでMySQLデータベースのマスターとスレーブを構成する詳細なプロセスは次のとおりです。...

CSS (カスケーディング スタイル シート) の一般的な用語の概要

CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...

deepin apt コマンドを使用して最新バージョンの docker をインストールする方法

ステップ1: Ubuntuソースを追加するルートに切り替える suルートソフトウェアソースファイルの...

Dockerコンテナは定期的にデータベースをバックアップし、指定されたメールボックスに送信します(設計アイデア)

目次1. 背景: 2. デザインのアイデア: 3. 起動スクリプトを書く4. イメージを構築する5....

MySQL 5.7.21 のインストールとパスワード設定のチュートリアル

MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

Tomcatが親の委任メカニズムを破壊する方法についての簡単な説明

目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...

Linux Centos7 に mysql8 をインストールするチュートリアル

1. RPMバージョンのインストールデータベースの他のバージョンがあるかどうかを確認し、ある場合は完...

HTML で 2 つの div タグの間に垂直線を描く方法

最近、インターフェースを描画しているときに、インターフェースに垂直線を描画し、この垂直線の高さが親 ...

sed コマンドを使用してファイルの特定の行を効率的に削除する方法

序文通常、ファイル内の特定の行を削除したい場合は、まずファイルを開き、削除する内容を見つけて、これら...

MYSQL開発パフォーマンス調査:バッチデータ挿入の最適化方法

1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...

MySQL 5.7.18のインストール方法とMySQLサービスの起動手順の詳細な説明

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...