さまざまなネットワーク画像形式における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 での配置の使用方法の詳細な研究 (要約)

推薦する

Navicat は CSV データを MySQL にインポートします

この記事では、Navicatを使用してcsvデータをmysqlにインポートする方法を参考までに紹介し...

純粋な CSS 実装 (スクリプトなし) HTML コマンド スタイルのツールチップ テキスト プロンプト効果

実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...

MySQL マスタースレーブレプリケーションの原理と注意点

前面に書かれた最近、Mycat で特別なトピックを書いています。最近、多くの友人が面接に出かけている...

マウスオーバーボタンアニメーションを実現する純粋な CSS3 パート 2

前の 2 つの章を終えて、ボタンのフローティング アニメーションについて新たな理解が得られましたか?...

Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法

ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...

携帯電話向けウェブページ作成のヒント

現在では多くの人がスマートフォンを使用していることを考慮すると、モバイル Web ページの書き方は、...

エージェントを介したzabbix監視プロセスとポートの詳細なプロセス

環境の紹介オペレーティングシステム: Centos 7.4 Zabbix バージョン: zabbix...

js での Object.create インスタンスの使用法の詳細な説明

1. Object.create() メソッドを使用して新しいオブジェクトを作成し、既存のオブジェク...

MySQL でのストアド プロシージャと関数の作成の詳細な説明

目次1. ストアドプロシージャ1.1. 基本構文1.2 実行権限を指定してストアドプロシージャを作成...

Nginx_geo モジュールを使用して CDN スケジュールを設定する方法

NginxのGeoモジュールの紹介geo ディレクティブは、ngx_http_geo_module ...

Nginx の構成と HTTP 実装コード分析との互換性

OpenSSL を使用して SSL キーと CSR ファイルを生成するHTTPS を設定するには、秘...

EDMをHTMLで記述する際の注意点まとめ(メール送信時の一般的な注意点)

フォーマットエンコーディング1. ページの幅は600~800px、長さは1024px以内に設定してく...

CSSポジションの5つの異なる値の使い方の詳細な説明

位置プロパティposition プロパティは、要素に使用する配置方法のタイプ (静的、相対的、固定、...

MySQL 8.0.23 のレプリケーション アーキテクチャにおけるスレーブ ノードの自動フェイルオーバー

私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...