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 レコードを挿入する詳細な例
システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...
この記事の例では、ページング機能を実装するためのVueの具体的なコードを参考までに共有しています。具...
序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...
今日の画面解像度は、320 ピクセル (iPhone) ほど小さいものから、2560 ピクセル以上 ...
1. openjdkを表示する rpm -qa|grep jdk 2. openjdk を削除します...
目次1. テレポートの紹介1.1. 複数のテレポートを使用する2. テレポートを使用する理由3. テ...
MySQL DDL ステートメントDDL、DMLとは何ですか。 DDL はデータ定義言語であり、CR...
# Windows および Linux 上の Redis のインストール デーモン構成Redis の...
Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...
序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...
Centos マシンで docker のインストールが完了したら、docker info コマンドを...
序文多くの管理・オフィスシステムでは、ツリー構造がいたるところで見られます。たとえば、「部門」や「機...
シンプルなSpring Boot Webプロジェクトを作成するアイデア ツールを使用して、Sprin...
目次序文クエリの使用シナリオ例時間間隔クエリクエリ日付と今日の時間の比較データ一般的なサイクルタイム...
序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...