解決 関数 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を使用した負荷分散の簡単な例
<br />セマンティクス化は一言で説明することはできないし、まだ公式かつ厳密な定義もあ...
1. DDLアトミック性の概要8.0 より前は、統一されたデータ ディクショナリ dd はありません...
DB ベンチマーク テストを実行する場合、qps と tps はデータベースのパフォーマンスを測定す...
成果を達成する実装コードhtml <base href="https://s3-us...
目次共通バージョンの紹介共通バージョンのダウンロードアドレスとインストール以下に簡単な違いを示します...
通常、クリック イベントは、メッセージ リマインダーのさまざまな状況に分割されます。これらが処理され...
序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...
目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...
目次1. オペレーター1.1 算術演算子1.2 インクリメント演算子とデクリメント演算子1.3 比較...
Linux システムの Swap パーティション、つまり swap パーティションは、一般に仮想メモ...
1. iframe の定義と使用法iframe 要素は、別のドキュメントを含むインライン フレーム...
mysql データベースには student テーブルがあり、その構造は次のとおりです。 Oracl...
1. ネットワーク接続方法がブリッジされていることを確認する物理ネットワーク接続ステータスのコピーを...
1. left(name,4)は左の4文字をインターセプトしますリスト: SELECT LEFT(2...
ウェブ上で証明書とキーをコピーするscp -rp -P52113 /application/ngin...