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. Linux (CentOS 7 64) システムに Nginx (1.18.0...
序文HTTP はステートレスな通信プロトコルです。各リクエストは互いに独立しており、サーバーは以前の...
この記事では、主に HTML のサンプル コードを紹介し、次のように交互に色を変更する方法を共有しま...
序文MySQL マスター スレーブ レプリケーションの遅延は、業界では長年の問題となっています。遅延...
なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...
序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...
MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...
目次問題の説明:解決策1解決策2問題の説明:ページ A と B の 2 つがあり、各ページにはget...
目次カスタム Vite プラグインvite-plugin-markdownの使用Front Matt...
ダウンロード: http://dev.mysql.com/downloads/mysql/ Cドライ...
KILL [接続 | クエリ] processlist_id MySQL では、各接続は個別のスレ...
最近、問題のある新しい SQL が本番データベースに入力される数を最小限に抑えるために、開発仕様を整...
この記事の例では、el-tableを使用して列と行を動的にマージするVueの具体的なコードを参考まで...
この記事では、参考までにMySQL 8.0.15のインストールと設定方法のグラフィックチュートリアル...
HTML ハイパーテキスト ドキュメントの基本構造は、ドキュメント ヘッダーとドキュメント本体の 2...