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

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

質問

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

公式ドキュメント

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

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

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

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

解決

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

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

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

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

推薦する

Linux は n 日前のログとサンプルコマンドを自動的に削除します

1. ファイル削除コマンド:対応するディレクトリを検索します -mtime + 日数 -name &...

HTML における li タグの水平配置の例

ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...

CSS でフロートをクリアするための完全ガイド (要約)

1. 親divは疑似クラスafterとzoomを定義します <スタイル タイプ="...

Linux での Makefile の書き方と使い方の詳細な説明

目次メイクファイルMakefile の命名とルールMakefile の仕組みMakefile変数Ma...

MySQL Shellの紹介とインストール

目次01 レプリ​​カセットアーキテクチャ02 MySQL Shellの紹介とインストール03 My...

nginx を介してローカルでリバースプロキシを構成するプロセス全体

序文Nginx は、イベント駆動型の非同期非ブロッキング処理フレームワークを使用する軽量 HTTP ...

MySQL 5.5 の導入に関する問題

MySQL の導入現在、会社ではプラットフォーム運用を通じてMySQLを導入しています。金曜日、プラ...

MySQL 5.7 における部分テーブルのデュアルマスター同期の実装プロセスの詳細な説明

序文最近、私はある要件に遭遇しました。会社の業務上、2 つのデータベース間の一部のテーブルは、リアル...

WeChatアプレットリクエストの前処理方法の詳細な説明

質問一部のページでは、onload でデータを要求してからビューをレンダリングするため、ミニプログラ...

Docker mongoDB 4.2.1 をインストールし、Springboot ログを収集する詳細な手順

1: dockerにmongodbをインストールするステップ1: dockerにmongodbをイン...

JavaScriptはXiaomi Mall公式サイトの完全なページ実装プロセスを模倣します

目次1. ホームページ制作1. ダウンロードアプリの制作2. ナビゲーションバーの制作3. カルーセ...

MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。

目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...

Linuxシステムにおける重要なサブディレクトリの問題について話す

/etc/fstabパーティション/ディスクを自動的にマウントし、マウントするパーティション/デバイ...

Centos7 でスーパーバイザ デーモンをインストールして設定する方法

初心者は自分で録音しましょう1. スーパーバイザーをインストールします。 Supervisor は ...

JS ES の新機能: 拡張演算子の紹介

1. スプレッド演算子スプレッド演算子は 3 つのドット ... で、複数の引数 (関数呼び出しなど...