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 レコードを挿入する詳細な例
問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...
コンピュータに初めて MySQL をインストールする場合、通常このエラー メッセージは表示されません...
MySQL 8.0.12 のダウンロードとインストールのチュートリアルを録画し、全員と共有しました。...
目次序文1. MySQL マスタースレーブレプリケーション1. サポートされているレプリケーションの...
基本構造:コードをコピーコードは次のとおりです。 <ダウンロード> <dt>...
4つの実用的なVueカスタム指示1. Vドラッグ要件: マウスドラッグ要素アイデア:要素のオフセット...
1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...
多くのウェブサイトのソースコードを確認すると、多くのコメントが見つかります。特に、ソース文書にコメン...
目次1. Bootstrap5 ブレークポイント1.1 モバイルファースト1.2 ブートストラップブ...
目次概要同一生成元ポリシー (SOP)相同制限クロスドメインをバイパスクロスサイトリクエストフォージ...
目次1.重複排除を設定する2. 重複を削除するには、2 回の for ループを使用します。 3. i...
目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...
この記事では、例を使用して、MySQL トリガーの原理と使用方法を説明します。ご参考までに、詳細は以...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...