解決 関数 mergeImgs(リスト) { const imgDom = document.createElement('img') document.body.appendChild(画像Dom) const キャンバス = document.createElement('キャンバス') キャンバス幅 = 500 キャンバスの高さ = 500 * リストの長さ 定数コンテキスト = canvas.getContext('2d') リスト.map((項目, インデックス) => { const img = 新しい画像() img.src = アイテム // クロスドメイン img.crossOrigin = 'Anonymous' img.onload = () => { context.drawImage(画像, 0, 500 * インデックス, 500, 500) const base64 = canvas.toDataURL('image/png') imgDom.setAttribute('src', base64) // コンソール.log(ベースリスト) } }) } 定数urlList = ['./img/timg%20(1).jpg', './img/timg.jpg'] 画像をマージします(urlList) コードを少し最適化し、パブリックメソッドに変更します /** * 複数の画像を結合して新しい画像を返します * @param {Array} list 画像の URL 配列 * @param {Number} cwith キャンバスの幅はデフォルトで 500 です * @param {Number} cheight キャンバスのデフォルトの高さは500です */ 関数 mergeImgs(リスト、cwith = 500、cheight = 500) { 新しい Promise を返します ((resolve, reject) => { 定数ベースリスト = [] const キャンバス = document.createElement('キャンバス') キャンバス幅 = cwith キャンバスの高さ = 高さ * リストの長さ 定数コンテキスト = canvas.getContext('2d') リスト.map((項目, インデックス) => { const img = 新しい画像() img.src = アイテム // クロスドメイン img.crossOrigin = 'Anonymous' img.onload = () => { context.drawImage(画像、0、高さ * インデックス、高さ、高さ) const base64 = canvas.toDataURL('image/png') baseList.push(base64) (baseList[リストの長さ - 1])の場合{ コンソール.log(ベースリスト) // 新しい画像を返すresolve(baseList[list.length - 1]) } } }) }) } 定数urlList = ['./img/timg%20(1).jpg', './img/timg.jpg'] mergeImgs(urlList).then(base64 => { const imgDom = document.createElement('img') imgDom.src = base64 document.body.appendChild(画像Dom) }) 効果 これで、Canvas を使用して複数の画像を 1 つに結合する js の実装コードに関するこの記事は終了です。より関連性の高い js キャンバス画像結合コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。 以下もご興味があるかもしれません:
|
<<: Windows システムに MySQL を素早くインストールして展開する方法 (グリーンの無料インストール バージョン)
>>: 負荷分散の基礎知識とnginxを使用した負荷分散の簡単な例
最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...
目次1. 実行コンテキストとは何か2. 実行コンテキスト スタックとは何ですか? 3. 実行コンテキ...
ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...
runlike を使用してコンテナの docker run 起動パラメータを表示します。 pipを...
1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...
現在、プロジェクトの要件により、フォームの送信を制御し、送信前にデータを検証および処理するために j...
目次1. 数字を逆にする2. 配列内の最大のn個の数値を取得する3. 階乗を計算する4. 現在の動作...
ここでは、Linux プラットフォームでの Zabbix エージェントのインストールと構成について簡...
背景最近、オンライン操作中に DML ステートメントを実行しました。これは絶対確実だと思っていました...
複合インデックス (結合インデックスとも呼ばれます) は、複数の列に対して作成されるインデックスです...
目次序文配列.isArrayコンストラクタインスタンスプロトタイプオブジェクト.プロトタイプ.toS...
前回の記事で、mysqldump バックアップ ファイルに記録されるタイムスタンプ データは UTC...
最近、複数のdivにあるテーブルのTDを同じ幅に調整しても、揃えることができず、幅にパターンがないこ...
目次機能紹介レンダリング1. ホームページレンダリング用のコード(index03) 2. ゲーム開始...
みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。何らかの歴史的な理由や誤操作...