srcまたはcss背景画像のurl値はbase64でエンコードされたコードです

srcまたはcss背景画像のurl値はbase64でエンコードされたコードです
ウェブ上の一部の画像の src または CSS 背景画像 URL の後に、data:image/png;base64、iVBORw0KGgoAAAANSUhEUgnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/KuVgz5BDCSZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D などの長い文字列が続くことにお気づきかもしれません。それでこれは何ですか?これはデータ URI スキームです。

Data URI スキームは RFC2397 で定義されています。その目的は、外部ファイルから読み込むことなく、小さなデータを Web ページに直接埋め込むことです。たとえば、上の文字列は実際には小さな画像です。これらの文字をコピーして Firefox のアドレス バーに貼り付けてアクセスすると、1X36 の白とグレーの png 画像が表示されます。

上記のデータ URI において、data はデータを取得するためのプロトコル名、image/png はデータ型名、base64 はデータのエンコード方式、カンマの後のデータは image/png ファイルの base64 エンコードされたデータを表します。

現在、データ URI スキームは次のタイプをサポートしています。
データ: テキストデータ
データ:text/plain、テキストデータ
データ:text/html、HTML コード
data:text/html;base64、base64 でエンコードされた HTML コード
データ:text/css、CSS コード
data:text/css;base64、base64 でエンコードされた CSS コード
データ:text/javascript、Javascript コード
data:text/javascript;base64、base64 でエンコードされた Javascript コード
data:image/gif;base64、base64 でエンコードされた gif 画像データ
data:image/png;base64、base64 でエンコードされた png 画像データ
data:image/jpeg;base64、base64 でエンコードされた jpeg 画像データ
data:image/x-icon;base64、base64 でエンコードされたアイコン画像データ

簡単に言うと、base64 は 8 ビット データを標準の ASCII 文字に変換します。インターネット上には無料の base64 エンコードおよびデコード ツールが多数あります。PHP では、base64_encode() 関数を使用してエンコードできます (例: echo base64_encode(file_get_contents('wg.png'));)。
現在、IE8、Firfox、Chrome、Opera ブラウザはすべて、このタイプの小さなファイルの埋め込みをサポートしています。

写真の例を見てみましょう:

Web ページ上の画像は次のように表示できます。
<img src="upload/2022/web/wg.png"/>
次のように表示することもできます。

コードをコピー
コードは次のとおりです。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D"/>

画像ファイルの内容を HTML ファイルに直接書き込みます。この利点は、HTTP リクエストを節約できることです。欠点は、ブラウザがそのような画像をキャッシュしないことです。実際の状況に応じて自由に選択できます。

<<:  ウェブページ内のFlash SWFファイルを変更する方法

>>:  指定された期間内のすべての日付または月を取得する MySQL ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)

推薦する

Node-Redを使用してMySQLデータベースに接続する方法

Node-red をデータベース (mysql) に接続するには、まずコンピューターに MySQL ...

Linux の文字端末でマウスを使って赤い四角形を移動する方法

すべてがファイルです! UNIX はすでにそれを言っています。エリック・レイモンドはこう言いました。...

ドキュメントの場所の比較

<br />2 年前に PPK が投稿した素晴らしいブログ記事では、contains()...

CnBlogs カスタムブログスタイルの共有

半夜かけてようやくブログのスタイルを大体完成させることができました。ブログ全体が青を基調としていて、...

Vue/React シングルページ アプリケーションをリフレッシュなしで復元するソリューション

目次導入なぜわざわざ?落とし穴のあるコミュニティソリューション(Vue を例に挙げる)現時点では良い...

WebページのレイアウトではIE6の互換性の問題を考慮する必要があります

下の図は、当社のウェブサイト統計システムの訪問者詳細におけるブラウザ閲覧率を示しており、IE6 が ...

ページネーションの例とベストプラクティス

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

Linux での VMWare15.5 のインストールに関するチュートリアル

Linux に VMWare をインストールするには、公式 Web サイト https://www....

CSS を使用して複数列の等高レイアウトを設定する方法の例

最初は、複数の列のコンテンツのサイズと高さが異なります。ここで、表示する背景を異なるものに設定し、各...

Vue3 ドラッグ可能な左パネルと右パネルの分割コンポーネントの実装

目次コンポーネントの分解左パネル右パネル入力パラメータの分解小道具スロット具体的な実装ドラッグする方...

jQuery タグセレクターの適用例の詳細な説明

この記事では、jQueryタグセレクターアプリケーションの具体的なコードを例として紹介します。具体的...

EF (Entity Framework) の挿入または更新データ エラーの解決方法

エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテ...

OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

ここ数日、ウェブサイトを初めて開いたときにアクセスが非常に遅いのですが、その後はページが正常に開きま...

時間を節約できる Linux コマンド エイリアス 15 個

序文Linux システムの管理と保守のプロセスでは、多数のコマンドが使用されます。非常に長いコマンド...