この記事では、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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux で FTP イメージ サーバーをインストールして展開する方法
Web フロントエンド開発に含まれる内容は、主に W3C 標準の構造、動作、パフォーマンスです。では...
目次1. 監視ポート関係の説明操作する2. 監視サービス関係の説明操作する3. テンプレートのインポ...
まず: <abbr> または <acronym>これら 2 つの記号は同じ意...
最近、CSS インターフェースに取り組んでいるときに、line-height と height とい...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...
JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...
高い同時実行性とは何ですか?デフォルトの Linux カーネル パラメータは、最も一般的なシナリオ向...
JS のクラスの定義や継承は本当に多様なので、別のノートブックを開いて記録しておきます。意味オブジェ...
まず効果を見てみましょう: 序文:このアイデアは、Bilibili のアップロード者 Steven ...
目次1. Linuxホスト名を設定するクライアントホストを構成するサーバーホストを構成する2. ホス...
序文この記事では、Vue コンポーネントがどのように解析され、レンダリングされるかを説明します。 V...
ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...
背景ブロックチェーン ログ モジュールで作業しているときに、コンテナーが実行されている場合は、ログ ...
この記事では、MySQL データベースのバックアップを実装するさまざまな方法について説明します。ご参...