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

推薦する

Docker を使用した ELK7.3.0 ログ収集サービスの導入に関するベスト プラクティス

最初に書くこの記事では、ELK 7.3.0 の展開についてのみ説明します。展開環境:システムセントO...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

JavaScript 組み込みオブジェクトの概要

目次1. 組み込みオブジェクト2. 数学オブジェクト1. Mathオブジェクトの使用2. 指定された...

Linuxファイアウォールiptablesの詳細な紹介、設定方法と事例

1.1 iptablesファイアウォールの概要Netfilter/Iptables (以下、Ipta...

MySQLトリガーの使用

トリガーにより、ステートメントの実行前または実行後に他の SQL コードを実行できます。トリガーは、...

さまざまなHTTPリターンステータスコードの詳細な説明

サイト上のページを表示するためのリクエストがサーバーに送信されると(たとえば、ユーザーがブラウザでペ...

HTML における br と br/ の違い

スタックフローからの回答:単に<br>だけで十分です。その他の形式は、XHTML との互...

Linux ネットワーク システムの紹介

目次ネットワーク情報ホスト名を変更するDNSドメイン名解決ネットワーク関連コマンドファイアウォール暗...

VirtualBox を使用して Mac 上にローカル仮想マシン環境を構築する方法

1. ビッグデータとHadoopビッグデータについて研究し学ぶには、当然 Hadoop から始める必...

Ubuntu 16.04 サーバーで MySQL を設定し、リモート接続を有効にする方法

背景最近、Node.js を勉強しているのですが、クラウド サーバーがあることを思い出しました。しか...

Vueで親子コンポーネント通信を実装する方法

目次1. 親コンポーネントと子コンポーネントの関係2. 小道具3. $エミット4. $親V. 結論 ...

Unicode の一般的な文字の概要

初期のコンピューターのほとんどは ASCII 文字しか使用できませんでしたが、その後、主要な西洋のア...

Ubuntu での mysql のインストールと使用 (一般版)

Ubuntu のバージョンに関係なく、MySQL データベースのインストールは基本的に同じです。具...

Docker可視化ツールPortainerの導入と中国語翻訳

#docker 検索#docker プルポーター1. イメージを取得した後、中国語パッケージをダウン...

MySQL データベース設計 3 つのパラダイム例分析

3つのパラダイム1NF: フィールドは分離不可能です。 2NF: 主キーがあり、非主キー フィールド...