html2canvasで画像が正常にキャプチャできない時の解決方法

html2canvasで画像が正常にキャプチャできない時の解決方法

質問

まず、私が遭遇した問題についてお話しします。まず、そういった需要があるわけです。フロントエンドは、バックエンドから送信されたデータに基づいて画像を動的に生成する必要があります。画像内のテキスト、背景画像、ユーザーアバターはすべてバックエンドインターフェースを通じて取得されます。ただし、html2canvas によって生成されたキャンバスを使用して、キャンバス内にいくつかの画像が正常に生成されました。しかし、一部の写真はどうしても表示できません。

公式ドキュメント

私は長い間プロジェクトに取り組みましたが成功せず、長い間 Google で検索しましたが成功しませんでした。この瞬間、少し絶望がありました。突然、公式サイトに行ってみようかと思いつきました。そこで公式サイトで以下のような内容を見ました。

制限事項<br/>
スクリプトが使用するすべての画像は、プロキシの助けを借りずに読み取ることができるように、同じオリジンの下に存在している必要があります。同様に、クロスオリジン コンテンツによって汚染された他のキャンバス要素がページ上にある場合、それらは汚れたものとなり、html2canvas で読み取れなくなります。<br/>
スクリプトは、Flash や Java アプレットなどのプラグイン コンテンツをレンダリングしません。

それは何についてですか?英語が苦手な人のために翻訳を載せておきます。英語が得意な方は上記のテキストを直接読んでいただけます。一般的な意味は、html2canvas ではスクリプトを使用して操作する、つまりスクリプトを使用して HTML をキャンバスに変換するということですが、クロスソース イメージを使用できないという制限があります。使用すると、html2canvas はリソースを読み取りません。

このため、変換されたキャンバス上の一部の画像は常に空白になります。ページ上にクロスオリジン画像リソースを使用する他のキャンバスがある場合、html2canvas はそれらを読み取りません。

解決

静的リソースを一度転送し、html2canvas 構成でクロスオリジン リソースの読み込みを許可します。

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

<<:  Dockerは単一のイメージを使用して複数のポートにマッピングします

>>:  JavaScript で知らない Object.entries の使い方

推薦する

Zabbix は MySQL インスタンス メソッドを監視します

1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...

意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されてい...

同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...

Apache Log4j2 が核レベルの脆弱性と迅速な修正を報告

Apache Log4j2 が核レベルの脆弱性を報告し、スタックリーダーの友人たちは大騒ぎになりまし...

mysql 8.0.16 winx64.zip インストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16 winx64.zipのインストールと設定方法の具体的なコード...

Dockerの匿名マウントと名前付きマウントの具体的な使用法

目次データ量匿名マウントと名前付きマウントデータボリュームの場所データ量匿名マウントと名前付きマウン...

MySQL コード実行構造例の分析 [シーケンス、分岐、ループ構造]

この記事では、例を使用して MySQL コード実行構造について説明します。ご参考までに、詳細は以下の...

Idea で Tomcat のソースコードデバッグを開始し、デバッグのために Tomcat に入る方法

idea 開発ツールを使用してコードをデバッグする場合、Java Web プロジェクトで、Web コ...

Nginxドメイン名転送のhttpsアクセスの実装

事前に一言:突然、複数のドメイン名のアクセスを https に転送するというタスクを受け取りました。...

vue3 を使用してカウント関数コンポーネントのカプセル化例を実装する

目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. アイデア2. 準備2. ...

Dockerコンテナイメージからコードを復元する手順

コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります...

MySQL Community Server 8.0.11 のインストールと設定方法のグラフィックチュートリアル

最近、MySQL を始めとしてデータベースの知識を勉強し始めました。以下では、皆さんの参考になるよう...

知っておくべき 18 の Web ユーザビリティの原則

世界最高のビジュアル デザイン スキルを持っていたとしても、訪問者がページ間やアイテム間を快適に移...

よく使われるn番目の子セレクターをまとめる

序文フロントエンドプログラミングでは、奇数、偶数などの数値を受け入れることができる nth-chil...

JavaScript でサウンド効果付きの花火効果を実装する

コードを書くのに 30 分かかりましたが、この HTML5 Canvas New Year Fire...