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 ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)

推薦する

Linux プロセスが占有するポート番号を表示する 6 つの方法

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

Windows Server 2008 R2 で忘れたパスワードを処理する方法

Windows Server 2008R2を忘れた場合の対処方法サーバーの数が多すぎる、サーバーが多...

Vue は zip ファイルのダウンロードを実装します

この記事の例では、Vueの具体的なコードを共有し、zipファイルをダウンロードして参考にしています。...

MySQLの共同クエリ最適化メカニズムの詳細な説明

目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...

MySQL の count()、group by、order by の詳細な説明

最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。...

Reactは適応性の高い仮想リストを実装する

目次変換前:変換後: 0x0の基本0x1 「固定高さ」の仮想リストを実装する原理:最適化: 0x2 ...

MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します

目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...

Windows で負荷分散に Nginx+Tomcat を使用するための完全な手順

序文今日は、Prince が Windows で負荷分散に Nginx + Tomcat を使用する...

ナビゲーションデザインと情報アーキテクチャ

<br />ナビゲーションについて話すときは、ほとんどの場合、ナビゲーションがコンテンツ...

Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)

序文現在、私はコースウェア PPT のオンライン プレビューを必要とする高品質のコースに取り組んでい...

HTML <!--...--> コメントタグの役割の詳細な分析

多くのウェブサイトのソースコードを確認すると、多くのコメントが見つかります。特に、ソース文書にコメン...

MySQL 5.7.18 でパスワードを変更する方法

MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...

iframe に関するいくつかの発見と考察

この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...

Windows での MySQL 8.0.11 インストール チュートリアル

この記事は、WindowsでのMySQL 8.0.11のインストールチュートリアルを記録しています。...