HTML 仕様書では、画像の crossorigin 属性が導入されています。適切なヘッダー情報 CORS を設定することで、img 画像を他のサイトから読み込み、現在のサイト (現在のオリジン) から直接ダウンロードしたかのようにキャンバスで使用できるようになります。 crossorigin 属性の使用の詳細については、CORS 設定属性を参照してください。 「汚染された」キャンバスとは何ですか? CORS 認証なしでキャンバス内の画像を使用することは可能ですが、そうするとキャンバスが汚染されます。 キャンバスが汚染されると、キャンバスからデータを抽出できなくなります。つまり、toBlob()、toDataURL()、getImageData() などのメソッドを呼び出すことができなくなり、セキュリティ エラーがスローされます。 これは実際には、ユーザーの個人情報を保護し、プライバシー漏洩の原因となるリモート Web サイトからユーザーの画像情報が許可なく読み込まれるのを防ぐためです。
例: 他のサイトから画像を保存する まず、イメージ サーバーは対応する <IfModule mod_setenvif.c> <IfModule mod_headers.c> <FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$"> SetEnvIf オリジン ":" IS_CORS ヘッダー設定 Access-Control-Allow-Origin "*" env=IS_CORS </ファイル一致> </モジュール> </モジュール> これらの設定を有効にすると、独自のリソースと同様に、他のサイトの画像を DOM ストレージ (または他の場所) に保存できます。 var img = 新しい画像、 キャンバス = document.createElement("キャンバス"), ctx = キャンバス.getContext("2d")、 src = "http://example.com/image"; // 特定の画像アドレス img.crossOrigin = "Anonymous"; img.onload = 関数() { キャンバスの幅 = img の幅; キャンバスの高さ = img.height; ctx.drawImage(画像, 0, 0); localStorage.setItem( "savedImageData", canvas.toDataURL("image/png") ); } src = src; // キャッシュされた画像もロードイベントをトリガーするようにします if ( img.complete || img.complete === undefined ) { img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="; src = src; } ブラウザの互換性 デスクトップ
携帯
参照 Chrome: WebGL でクロスオリジン画像を使用する HTML 仕様 - crossorigin 属性 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: JavaScript のスプレッド演算子とレスト演算子の違いの詳細な説明
>>: Quill エディタでカスタム HTML レコードを挿入する詳細な例
1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...
データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...
1. はじめに少し前、開発者がテスト環境や本番環境で誤った操作をし、データベースを誤って削除/更新し...
1.1 iptablesファイアウォールの概要Netfilter/Iptables (以下、Ipta...
Nginxはまず、設定ファイル内のどのserver{}ブロックを処理に使用するかを決定します。次のs...
この記事では、参考までに、簡単なログイン機能を実装するためのvue+tp5の具体的なコードを紹介しま...
2 つのテーブルを関連付けるときに、外部キーを作成できませんでした。このブログから、問題は、ポイント...
Mysqlは3種類のロック構造をサポートしていますテーブルレベルのロック、低オーバーヘッド、高速ロッ...
1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...
<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...
公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...
この記事では、ドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...
1. /etc ディレクトリ内の、文字以外の文字で始まり、その後に文字と任意の長さのその他の文字が続...
Linux と Unix はマルチユーザー オペレーティング システムであるため、ファイルの権限と所...
1. JDKをインストールする1.1 現在の仮想マシン環境にJDKがあるかどうかを確認する rpm ...