さまざまなネットワーク画像形式におけるPNGの利点の詳細な説明

さまざまなネットワーク画像形式におけるPNGの利点の詳細な説明

BMP は、ハードウェア デバイスに依存せず、広く使用されている画像ファイル形式です。ビットマップ保存形式を使用し、オプションの画像深度以外の圧縮は使用しません。そのため、BblP ファイルは大きなスペースを占有します。 BMP ファイルの画像深度は、1 ビット、4 ビット、8 ビット、24 ビットです。 BMP ファイルにデータを保存する場合、画像は左から右、下から上にスキャンされます。
BMP ファイル形式は Windows 環境で画像関連データを交換するための標準であるため、Windows 環境で実行されるすべてのグラフィックおよび画像ソフトウェアは BMP 画像形式をサポートしています。
一般的な BMP 画像ファイルは、BMP 画像ファイルのタイプや表示内容などの情報が含まれるビットマップ ファイル ヘッダー データ構造と、BMP 画像の幅、高さ、圧縮方法、色の定義などの情報が含まれるビットマップ情報データ構造の 3 つの部分で構成されます。


JPEG 圧縮技術は、すべての画像圧縮技術の基礎とも言えます。静止画像圧縮に適しており、画像全体を直接処理し、圧縮率は20〜80倍で、解像度の選択はありません。そのため、圧縮ファイル全体が転送されるまで待ってから、画像に解凍する必要があります。この方法では、高解像度の画像の転送に数十秒から数分かかることもあります。


MJPEG (Motion JPEG) は、JPEG をベースに開発された動画像圧縮技術です。特定のフレームのみを圧縮し、基本的にビデオ ストリーム内の異なるフレーム間の変化は考慮しません。これにより、高精細な映像の取得が可能となり、チャンネルごとの映像精細度や圧縮フレームレートを柔軟に設定できます。圧縮された画像も自由に編集できます。しかし、その欠点も非常に明白です。まず、フレーム損失が深刻で、リアルタイム性能が低いです。各チャンネルが高解像度であることを保証しながら、リアルタイム圧縮を完了することは困難です。 2つ目:圧縮効率が低く、保存スペースが大きい。


その後、多層 JPEG (ML-JPEG) 圧縮技術が登場しました。これは、プログレッシブ技術を使用して、最初に低解像度の画像を送信し、その後、より詳細な圧縮データで補完して画質を向上させます。この方法は、元の方法と同じ時間がかかります。ただし、ユーザーは最初に画像を見ることができるため、この方法の方が適していると感じるでしょう。


PNG は、1990 年代半ばに開発された画像ファイル保存形式です。その目的は、GIF ファイル形式にはないいくつかの機能を追加しながら、GIF および TIFF ファイル形式を置き換えることです。 Portable Network Graphic Format (PNG) の名前は、非公式の「PNG は GIF ではない」に由来しています。これは、「ピング」と発音されるビットマップ ファイルの保存形式です。 PNG を使用してグレースケール画像を保存する場合、グレースケール画像の深度は最大 16 ビットになります。カラー画像を保存する場合、カラー画像の深度は最大 48 ビットになり、最大 16 ビットのアルファ チャネル データも保存できます。 PNG は、LZ77 から派生したロスレス データ圧縮アルゴリズムを使用します。


PNG ファイル形式は、GIF ファイル形式の次の特性を保持します。

カラー ルックアップ テーブルまたはパレットを使用すると、256 色のカラー画像をサポートできます。
ストリーミング可能性: 画像ファイル形式では、画像データの連続的な読み取りと書き込みが可能であり、通信中に画像を生成して表示するのに最適です。
プログレッシブ表示: 通信リンク上で画像ファイルを送信しながら、端末に画像を表示できる機能です。全体のアウトラインが表示された後、画像の詳細が徐々に表示されます。つまり、最初は低解像度で画像が表示され、その後解像度が徐々に高くなります。
透明度: このプロパティを使用すると、画像の特定の部分を表示しないようにすることができ、独特な画像を作成できます。
補助情報: この機能を使用すると、画像ファイルにテキスト注釈情報を保存できます。
コンピュータのハードウェアおよびソフトウェア環境に依存しません。
ロスレス圧縮を使用します。


PNG ファイル形式には、GIF ファイル形式にはない次の機能を追加する必要があります。

ピクセルあたり 48 ビットのトゥルーカラー画像。
ピクセルあたり 16 ビットのグレースケール画像。
グレースケールおよびトゥルーカラー画像にアルファ チャネルを追加できます。
画像のガンマ情報を追加します。
巡回冗長コード (CRC) を使用して破損したファイルを検出します。
画像表示を高速化する逐次比較表示モード。
標準の読み取り/書き込みツールキット。
複数の画像を 1 つのファイルに保存できます。
ファイル構造


PNG 画像形式のファイル (またはデータ ストリーム) は、8 バイトの PNG ファイル署名フィールドと、特定の構造に編成された 3 つ以上のデータ チャンクで構成されます。


PNG は 2 種類のデータ チャンクを定義します。1 つはクリティカル チャンクと呼ばれる標準データ チャンクで、もう 1 つは補助チャンクと呼ばれるオプションのデータ チャンクです。キー データ ブロックは、4 つの標準データ ブロックを定義します。すべての PNG ファイルにこれらのデータ ブロックが含まれている必要があり、すべての PNG 読み取りおよび書き込みソフトウェアもこれらのデータ ブロックをサポートする必要があります。 PNG ファイル仕様では、オプションのデータ ブロックをエンコードおよびデコードするために PNG コーデックは必要ありませんが、オプションのデータ ブロックのサポートが推奨されています。


GIF (Graphics Interchange Format) の本来の意味は「Image Interchange Format」であり、1987 年に CompuServe によって開発された画像ファイル形式です。 GIF ファイルのデータは、LZW アルゴリズムに基づく連続階調ロスレス圧縮形式です。圧縮率は一般的に約 50% で、どのアプリケーションにも属しません。現在、ほぼすべての関連ソフトウェアがこれをサポートしており、パブリックドメインにも GIF 画像ファイルを使用するソフトウェアが多数存在します。 GIF 画像ファイルのデータは圧縮されており、可変長などの圧縮アルゴリズムが使用されます。したがって、GIF の画像深度は 1 ビットから 8 ビットの範囲であり、GIF は最大 256 色の画像をサポートすることになります。 GIF 形式のもう 1 つの特徴は、1 つの GIF ファイルに複数のカラー画像を保存できることです。ファイルに保存された複数の画像データを 1 つずつ読み出して画面に表示すれば、最もシンプルなアニメーションを作成できます。


GIF は、静的 GIF とアニメーション GIF に分けられます。透明な背景画像をサポートし、複数のオペレーティングシステムに適しており、サイズが非常に小さいです。インターネット上の多くの小さなアニメーションは GIF 形式です。実際、GIF は複数の画像を 1 つの画像ファイルに保存してアニメーションを形成するため、最終的には GIF は依然として画像ファイル形式です。

<<:  MySQL 整合性制約の定義と例のチュートリアル

>>:  CSS での配置の使用方法の詳細な研究 (要約)

推薦する

vue の webpack -v エラー解決の概要

XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...

プロジェクトにおけるVue3のロジック抽出とフィールド表示についての簡単な説明

目次論理階層化異なる地域から事業を分離するこれを実行する利点このようなシナリオにどう対処するか最適化...

フロントエンドパフォーマンス最適化に関する補足記事

序文私は、Web サイトのフロントエンド パフォーマンス最適化のための JavaScript と C...

3列レイアウトを実現するCSS3フレキシブルボックスフレックス

タイトルの通り、高さは既知で、左と右の列の幅は 300 ピクセル、中央は適応型です。弾性ボックス自体...

mysql 一時テーブルの使用状況の分析 [クエリ結果は一時テーブルに保存できます]

この記事では、例を使用して MySQL 一時テーブルの使用方法を説明します。ご参考までに、詳細は以下...

ウェブデザインにおけるグリッドシステム

グリッドシステムの形成1692年、新しく即位したフランス国王ルイ14世は、フランスの印刷技術のレベル...

MySQL の 6 つの一般的な制約タイプの詳細な説明

目次序文1.nullでない2. ユニーク3. デフォルト4.主キー自動増分主キー5. 外部キー6.チ...

MySQL マスタースレーブレプリケーションの原理と実践の詳細な説明

目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...

MySQLとPythonの相互作用の例

目次1. データを準備するデータテーブルを作成するデータの挿入2. SQLドリル1. SQL文の強化...

Vue+video.jsはビデオプレイリストを実装します

この記事では、ビデオプレイリストを実装するためのvue + video.jsの具体的なコードを参考ま...

MySQL を使用した分散ロックの実装

導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...

ハードコーディングに別れを告げ、フロントエンドテーブルがインスタンスコードを自動的に計算できるようにします。

序文私のチームが税制モジュールを開発していたとき、計算問題、特にグリッド内の計算を解決するために時間...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...

@font-face を使用して Web ページに特殊文字を実装する (カスタム フォントを作成する)

数日前、CSS を使用して三角形の矢印を実装する方法について記事を書きました。 目的の効果は達成され...

モバイル開発チュートリアル: ピクセル表示の問題の概要

序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...