カラーコーディング。 コーディンググラフィック情報_10年生_情報学の授業 トゥルーカラーモードとは

アンドロイド用 05.02.2021
アンドロイド用

24ビットカラー(サブセットであること 天然色 英語 "天然色") コンピューター グラフィックス - 多数の色、ハーフトーン、色合いを表示できる画像を表現および保存する方法。 色は、RGB モデルの 3 つのコンポーネント、赤 (R)、緑 (G)、青 (B) のそれぞれに対して 256 レベルを使用して表現され、結果として 16,777,216 (2 24) の異なる色が得られます。

32 ビット TrueColor は、半透明のウィンドウ、ディゾルブ メニュー、シャドウの効果を表示するなど、半透明のイメージを表示するためのピクセルの透明度を設定するアルファ チャネルを保存できます。 一部のビデオ アダプタは、ハードウェアでアルファ チャネルを処理できます。

信号をデジタル化するときのビット数

(スキャナまたはデジタル カメラを使用して) 信号をデジタル化するときのビット数と、信号を保存して画面に表示するときのビット数を混同しないでください。

チャンネルあたり 256 レベルのカラーはガンマ補正された形式で保存され、カメラのピクセルからの信号は線形形式でデジタル化されます。 通常、Raw 形式の RAW カメラ データに保存されます。

記事「TrueColor」についてレビューを書く

ノート

TrueColor の説明の抜粋

伯爵夫人は訪問にうんざりしていたので、他の人を迎えることはせず、ドアマンには、まだお祝いの言葉を持って来る人全員を食事に招待することだけを命じられました。 伯爵夫人は、サンクトペテルブルクから到着して以来、あまり会っていなかった幼なじみのアンナ・ミハイロヴナ王女と個人的に話したいと考えていた。 アンナ・ミハイロフナは、涙に濡れた気持ちよさそうな顔をして、伯爵夫人の椅子に近づきました。
「正直に申し上げます」とアンナ・ミハイロフナさんは言った。 – 私たちにはもうほとんど残っていない、古い友人たちよ! だからこそ私はあなたの友情をとても大切にしています。
アンナ・ミハイロヴナはベラを見て立ち止まった。 伯爵夫人は友人と握手した。
「ヴェラ」伯爵夫人は明らかに愛されていない長女に話しかけた。 - どうして何も分からないのですか? ここにいると場違いな気がしませんか? 姉妹のところに行くか、それとも...
美しいヴェラは軽蔑的に微笑み、明らかに少しの侮辱も感じていなかった。
「もしあなたがずっと前に私に言っていたら、ママ、私はすぐに出て行ったのに」と彼女は言い、自分の部屋に行きました。
しかし、ソファのそばを通りかかったとき、彼女は 2 つの窓に対称的に 2 組のカップルが座っていることに気づきました。 彼女は立ち止まり、軽蔑的に微笑んだ。 ソーニャはニコライの近くに座り、ニコライは彼女のために初めて書いた詩を書き写していた。 ボリスとナターシャは別の窓に座っていましたが、ベラが入ってくると黙ってしまいました。 ソーニャとナターシャは罪悪感と幸せそうな顔でベラを見つめました。
これらの女の子たちが恋に落ちるのを見るのは楽しくて感動的でしたが、明らかに、彼女たちの姿はヴェラに楽しい感情を引き起こしませんでした。
「私のものをとらないで、あなたには自分の部屋があるのよ、と何度お願いしたことでしょう。」と彼女は言いました。
彼女はニコライからインク壺を受け取りました。
「さあ、さあ」と彼はペンを濡らしながら言った。
「あなたは、間違ったタイミングですべてを行う方法を知っています」とベラは言いました。 「それから彼らはリビングルームに逃げ込んだので、みんながあなたを恥ずかしく思いました。」
彼女の言ったことは完全に正論であるにもかかわらず、あるいはだからこそ、誰も彼女に答えず、四人全員がただお互いを見つめるだけだった。 彼女はインク壺を手に持ったまま部屋に残りました。

a) b)

図 6.3 – ラスター描画

a) ラスター。 b) 図面モデリング

ラスター イメージは正方形のピクセルの集合です。 正方形の大きさが決まります 解決。 解像度は、画像の単位長さあたりのピクセル数です。 解像度は、1 インチあたりのピクセル数で測定されます。 ぴー – インチあたりのピクセル数。 たとえば、解像度 254 ppi は、1 インチ (25.4 mm) あたり 254 ピクセルがあることを意味するため、各ピクセルのサイズは 0.1 × 0.1 mm になります。 解像度が高いほど、図面はより正確に (鮮明に) モデリングされます。

6.2 カラーコーディング

各ピクセルは色でエンコードされます。 たとえば、白黒画像の場合、白は 1、黒は 0 です。画像 6.3 は行列 4 でエンコードできます。 コードが埋め込まれた最初の 3 行を以下に示します。

図面に色が付いている場合はどうなりますか? たとえば、黒、白、赤、青の 4 色を使用した旗のデザイン (図 6.4、a)。 付録にはカラー図が記載されています。

図 6.4 – カラーラスター画像のコーディング。

a) ラスター画像。 b) パターンコーディング行列

4 つの色のオプションの 1 つをエンコードするには 2 ビットが必要なので、各色のコード (および各ピクセルのコード) は 2 ビットで構成されます。 00 が黒、01 が赤、10 が青、11 が白を表すものとします。 次に、コードの表を取得します (図 6.4、b)。

6.2.1 画面のカラーコーディング

どれも信じられています 放出された異なる明るさの 3 つの光線 (赤、緑、青) だけを使用して色をシミュレートできます。 したがって、あらゆる色 (「白」を含む) は、赤、緑、青の 3 つの要素に大まかに分解できます。 これらのコンポーネントの明るさを変更することで、任意の色を作成できます。 このカラーモデルは英語の頭文字をとってRGBと呼ばれます。 - 赤、 – 緑と – 青 (図 6.5、a)。 カラー図は付録に記載されています。



RGB モデルでは、各コンポーネントの明るさは 0 ~ 255 の整数としてエンコードされることがほとんどです。この場合、カラー コードは、個々のコンポーネントの明るさを表す 3 つの数値 (R、G、B) です。 色 (0,0,0) は黒、(255,255,255) は白です。 すべてのコンポーネントの明るさが等しい場合、黒から白までのグレーの階調が得られます。 たとえば、(75,75,75) は濃いグレー、(175,175,175) は明るいグレーです。

明るい赤 (ピンク) 色を作成するには、赤 (255,0,0) の緑と青の明るさを均等に増加する必要があります。たとえば、(255, 155, 155) はピンクです。 これはMSWordエディターで確認できます。 ツール - テキストの色 - その他の色... - スペクトル(図6.5、b)。

a) b)


図 6.5 – RGB カラーモデル。

a) RGB モデル。 b) MSWordの「テキストカラー」ツール

いくつかのカラーコードを以下の表 6.1 に示します。

表 6.1 – カラーコード

3 つの色それぞれに合計 256 の明るさのオプションがあります。 これにより、256 3 = 16,777,216 階調 (1,600 万以上) をエンコードできるようになり、人間にとっては十分以上です。 なぜなら
256 = 2 8 、3 つのコンポーネントはそれぞれメモリ内で 8 ビットまたは 1 バイトを占有し、特定の色に関するすべての情報は 24 ビット (または 3 バイト) かかります。 この量はと呼ばれます 色深度.



色深度ピクセルの色のエンコードに使用されるビット数です。

各ピクセルはビデオ メモリの 1 ビットから 3 バイトに割り当てられます ( 画像はビデオメモリに形成されます)。 例えば:

モノクロ モード、2 色 (黒と白) – 1 ビット (図 6.3、b)。

カラーモード、8色 – 3ビット。 赤=0; 1. 緑 = 0; 1. 青=0; 1. RGB= 2 3 = 8。

カラーモード、16色 – 4ビット。 = 0; 1 – 強度 (明るい、暗い)。 i RGB = 2∙2 3 = 2 4 = 16 (表 6.2)。

カラーモード、256 色 - 8 ビット。 = 00000 ,…, 11111 = = 2 5 = 32 の強度階調。 RGB = 2 5 * 2 3 = 2 8 = 256。

または 2 つの強度グラデーションと 2 つの RGB カラー
2 R 2 G 2 B 2 = 4*4*4*4 =2 8 = 256 (表 6.3)。

カラー モード、1,600 万色 – 3 バイト = 24 ビット
(図 6.5、b)。

表 6.2 – 16 色を生成するコード

iRGB
シアン(青緑)
マゼンタ(紫)
茶色
ライトグレー
ダークグレー(濃い灰色)
ライトブルー(明るい青)
ライトグリーン(明るい緑)
ライトシアン(ターコイズ)
ライトレッド(明るい赤)
ライトマゼンタ(ライラック)
黄色

表 6.3 – 256 色を生成するコード

R G B
∙∙∙ ∙∙∙ ∙∙∙ ∙∙∙

24 ビット カラー エンコーディングはモードと呼ばれることがよくあります。 天然色(英語) 天然色- 天然色)。 このエンコードでピクチャの体積をバイト単位で計算するには、各ピクセルの色が 3 バイトでエンコードされるため、ピクセルの合計数を決定し (幅と高さを乗算)、その結果を 3 で乗算する必要があります。 たとえば、True Color でエンコードされた 20x30 ピクセルの画像は、20x30x3 = 1800 バイトを要します。

トゥルー カラー モードに加えて、16 ビット エンコードも使用されます。 ハイカラー– 「高」色)、人間の目がより敏感な赤と青の成分に 5 ビット、緑の成分に 6 ビットが割り当てられる場合(合計 16 ビット)。 ハイカラー モードでは、2 16 = 65536 の異なる色をエンコードできます。 携帯電話は 12 ビットのカラーコーディング (コンポーネントごとに 4 ビット、2 12 = 4096 色) を使用します。

色深度と形成される色の数の関係を表 6.4 に示します。

表 6.4 – 色深度と色の数

一般に、使用する色が少ないほど、カラー画像の歪みは大きくなります。 したがって、カラーをエンコードする場合、情報の損失も避けられず、サンプリングによって生じる損失に「追加」されます。 離散化は、画像が正方形のピクセルのセットに置き換えられるときに発生します。 ただし、使用する色数が増えると、ファイル サイズも大きくなります。 たとえば、モードでは 天然色ファイルは 2 倍の大きさになります
12ビットエンコーディング。

非常に多くの場合 (図、ダイアグラム、図面など)、画像内の色の数は少ない (256 色以下)。 この場合に適用する パレットを使ったコーディング.

カラーパレットは、RGB モデルのコンポーネントとして指定された各色が数値コードに関連付けられているテーブルです。

パレットサイズ– これはパレットの色を示すバイト数です。

たとえば、2 色のみの白黒パレット (図 6.3):

ü 黒: RGB コード (0,0,0); バイナリ コード 0 2 ;

ü 白: RGB コード (255,255,255); バイナリコード 1 2 。

ここではパレットのサイズは 6 バイトです。

旗画像のコーディング、4 色 (図 6.4):

ü 黒: RGB コード (0,0,0); バイナリコード 00 2 ;

ü 赤: RGB コード (255,0,0)。 バイナリコード 01 2;

ü 青: RGB コード (0,0,255)。 バイナリコード 10 2 ;

ü 白: RGB コード (255,255,255); バイナリコード 11 2 。

ここで、パレットのサイズは 12 バイトです。

以下は、いくつかのパレットのエンコード オプションに関するデータです (表 6.5)。

表 6.5 – パレットを使用したコーディングオプション

モニター画面の既知の特性 (画面解像度とピクセル色の数) を考慮して、高品質の画像を形成するためのビデオ メモリの最小量を計算できます (表 6.6)。

表 6.6 – ビデオメモリ容量

6.2.2 紙上の色分け

RGB コーディングは、モニターやラップトップ画面などのデバイスによって発せられる色を最もよく表します。 紙に印刷された画像を見ると、状況はまったく異なります。 私たちは、光源から目に入る直接光線ではなく、表面から反射された光線を見ます。 何らかの光源(太陽、電球)からの、可視範囲全体の波を含む「白色光」が、絵の具が塗布された紙に当たります。 絵の具は光線の一部を吸収し(そのエネルギーは紙の加熱に費やされます)、残りの反射色が目に入り、これが私たちが見る色になります。

たとえば、塗料が赤い光線を吸収すると、青と緑の光線だけが反射され、私たちは青に見えます。 この意味で、赤と青の色は、ちょうど「緑と紫」と「青と黄」のペアのように、互いに補い合います。 実際、白から緑を「引く」と紫色が得られ、青を「引く」と黄色が得られます。

色の同義語に注意してください: 紫 = 紫。

入射色と反射色の比率を以下に示します(表 6.7)。

表 6.7 – 入射色と反射色の比率

カラー モデルは、青、紫、黄色の 3 つの追加色で構築されます。 CMY(英語) シアン- 青、 赤紫色- バイオレット、 黄色– 黄色)、印刷に使用されます (図 6.6b)。 したがって、RGB および CMY カラー モデルは可逆的です (図 6.7)。 カラー図は付録に示されています。

図 6.6 – カラーモデル。

a) RGB モデル (モニター用); b)modelCMY(プリンター用)

図 6.7 – リバーシブルカラーモデル

C=M=Y=0 という値は、白い紙の上でそれを示します。
ペイントが適用されていないため、すべての光線が反射され、白になります。

青、紫、黄色の塗料を塗布する場合、理論的には色は黒になるはずであり (図 6.6b)、すべての光線が吸収されます。 ただし、実際には色は理想的ではないため、黒ではなく汚れた茶色になります。 さらに、黒い部分を印刷するときは、1 か所に 3 回分のインクを「注ぐ」必要があります。 また、プリンターでは黒のテキストが印刷されることが多く、カラー インクは黒インクよりもはるかに高価であることも考慮する必要があります。

この問題を解決するには、ペイント セットに黒を追加します。これはいわゆる カラー(英語) キーカラー)、結果のモデルは次のように表されます。 CMYK.

RGB および CMY (CMYK) カラー モデルに加えて、他のカラー モデルもあります。 それらの中で最も興味深いのはモデルです H.S.B.(英語のHue - 色調、色相; Saturation - 彩度、Brightness - 明るさ)、これは人の自然な知覚に最も近いものです。 色調は、例えば、青、緑、黄色である。 彩度はトーンの純度であり、彩度をゼロに下げるとグレーになります。 明るさは、色がどの程度明るいか暗いかを決定します。 明るさがゼロになると、どの色も黒になります。

6.3 ラスターコーディングの特徴

ラスター エンコードでは、画像がピクセルに分割 (サンプリング) されます。 ピクセルごとに色が決定され、通常は RGB コードを使用してエンコードされます。

ラスターコーディングには、 尊厳:

ü ユニバーサル方式 (あらゆる画像をエンコード可能)。

ü 写真など、明確な境界がないぼやけた画像をエンコードおよび処理するための唯一の方法。

そして 欠陥:

ü サンプリング中には常に情報の損失が発生します。

ü 画像のサイズを変更すると、画像内のオブジェクトの色や形が歪んでしまいます。サイズを大きくする場合は、失われたピクセルを何らかの方法で復元する必要があり、小さくする場合は、いくつかのピクセルを 1 つのピクセルに置き換える必要があるからです。

ü ファイル サイズは画像の複雑さには依存せず、解像度と色深度によってのみ決まります。 一般に、ラスター イメージの容量は大きくなります。

ラスター グラフィックスにはさまざまな形式があります。 最も一般的なファイル名拡張子は次のとおりです。

.bmp(英語のビットマップ - ビットマップ) - Windows オペレーティング システムの標準形式。 パレット化およびトゥルーカラー エンコーディングをサポートします。

.jpgまたは .jpeg(eng. Joint Photographic Experts Group - 専門写真家の共同グループ) - 写真をエンコードするために特別に開発された形式。 True Color モードのみをサポートします。 ファイル サイズを小さくするために強力な圧縮が使用され、画像がわずかに歪みます。そのため、境界が明確な図面には圧縮を使用することはお勧めできません。

.gif(英語: Graphics Interchange Format - 画像交換用のフォーマット) - パレット (2 ~ 256 色) によるコーディングのみをサポートするフォーマット。 以前の形式とは異なり、デザインの一部を透明にすることができます。 最新バージョンでは、アニメーション画像を保存できます。 可逆圧縮が使用されます。つまり、圧縮中に画像が歪みません。

.png(英語:Portable Network Graphics - ポータブル ネットワーク イメージ) - トゥルー カラー モードとパレット エンコーディングの両方をサポートする形式。 画像の一部は透明または半透明にすることができます (32 ビット RGBA エンコーディング、4 番目のバイトで透明度を指定します)。 画像は歪みなく圧縮されます。 アニメーションはサポートされていません。

6.4 ファイルエンコードに関する注意事項

あらゆる種類の情報はバイナリ コード、つまり 0 と 1 の連鎖の形式でコンピュータ メモリに保存されていると前述しました。 このような連鎖を受け取った以上、それが文字なのか絵なのか音声なのか映像なのか全く分かりません。 たとえば、コード 11001000 2 は、数字 200、文字「I」、トゥルー カラー モードのピクセル カラーのコンポーネントの 1 つ、256 色のパレットを持つ画像のパレット内の色番号、色を表すことができます。白黒写真の 8 ピクセルなど。コンピュータはバイナリ データを理解できますか? まず、ファイル名拡張子に注目する必要があります。 たとえば、ほとんどの場合、拡張子 .txt のファイルにはテキストが含まれ、拡張子 .bmp、.gif、.jpg、.png のファイルには画像が含まれます。

ただし、ファイル拡張子は必要に応じて変更できます。 たとえば、テキスト ファイルの拡張子を .bmp にし、JPEG 形式の画像の拡張子を .txt にすることができます。 したがって、特別な形式のすべてのファイル (プレーン テキスト、.txt を除く) の先頭にはヘッダーが書き込まれ、これによってファイルの種類とその特性を「知る」ことができます。 たとえば、BMP ファイルは文字「BM」で始まり、GIF ファイルは文字「GIF」で始まります。 さらに、タイトルには、画像のサイズとその特性 (パレット内の色数、圧縮方法など) が示されます。 この情報を使用して、プログラムはファイルの主要部分をデコード (解読) し、画面に表示します。

6.5 質問とタスク

1. コンピューター技術で使用されるパターンコーディングの 2 つの原則は何ですか?

2. あらゆる状況に適した画像をエンコードするための単一の方法を思いつくことができないのはなぜですか?

3. ラスターコーディングの背後にある考え方は何ですか?
ラスターとは何ですか?

4. ベクトルコーディングの背後にある考え方は何ですか? グラフィックプリミティブとは何ですか?

5. ピクセルとは何ですか? このような言葉はどのようにして生まれたのでしょうか?

6. パターンサンプリングとは何ですか? なぜ必要なのでしょうか?

7. 写真をデジタル化すると何が失われますか?

8. (画面、プリンターの) 解像度とは何ですか? どのような単位で測定されますか?

9. 色深度とは何ですか? それはどの単位ですか
測った?

10. True Color モードとは何ですか?

11. ハイカラーモードとは何ですか?

12. パレットコーディングとは何ですか? True Color モードと根本的にどう違うのですか?

13. ラスターコーディングの長所と短所は何ですか?

14. ベクトルコーディングの長所と短所は何ですか?

15. 写真を保存する場合、どの形式が推奨されますか?

16.図面や明確な境界のある図面を保存する場合、どのような形式で保存することが推奨されますか?

17. 次の図のコードはどのように記述されますか? 白黒のビットマップ イメージは、左上隅から開始して右下隅で終了するように、行ごとにエンコードされます。 エンコード時、0 は黒を表し、1 は白を表します。

解決。 画像コードのエントリは次のようになります。

010100 011111 101010 011101 = 010100011111101010011101 2 =

24375235 8 = 51FAD 16 。


使用したソースのリスト

1. Andreeva E. V. コンピュータ サイエンスの数学的基礎: 教科書。 手当 / E. V. アンドリーバ、L. L. ボソバ、I. N. ファリナ。 – M.: ビノム。 ナレッジラボラトリー、2007。

2. ポスペロフ D. A. 離散コンピューティング マシンの算術基礎 / D. A. ポスペロフ。 – M.: エネルギー、1970 年。

3. Savelyev A. Ya. デジタル オートマトンの算術および論理的基礎 / A. Ya. – M.: 高等学校、1980 年。

4. ポズドニャコフ S.N. 離散数学: 教科書
/ S.N.ポズドニャコフ、S.V.ルイビン。 – M.: アカデミー、2008 年。

5. ハートレー R.V.L. 情報の転送 / R.V.L.
// 情報理論とその応用。 – M.: フィズマギズ、1959 年。

6. シャノン K. コミュニケーションの数学理論。 (Shannon C.E. A Mathematical Theory of Communication. Bell System Technical Journal. – 1948. – pp. 379-423、623-656)。

7. ユシュケビッチ A.P. 中世の数学史
/ A.P.ユシュケビッチ。 – M.: フィズマギズ、1961 年。

どのような困難に遭遇しましたか? どうすればそれらを克服できるでしょうか?

2. 16 進数シーケンス 2466FF6624 16 でエンコードされた、幅 8 ピクセルの白黒描画を作成します。

3. 16 進数シーケンス 3A53F88 16 でエンコードされた 5 ピクセル幅の白黒描画を作成します。

4. 10x15 cm の画像は 300 ppi の解像度でエンコードされます。 この図面のピクセル数を推定します。 (答え:約200万画素)

5. RGB コード (100,200,200)、(30,50,200)、(60,180, 20)、(220, 150, 30) を使用して色の 16 進コードを構築します。 (答え: #64C8C8、#1E32C8、#3CB414、#DC961E)

6. Web ページにコードとして指定されている色を何と呼びますか: #CCCCCC、#FFCCCC、#CCCCFF、#000066、#FF66FF、#CCFFFF、#992299、#999900、#99FF99? RGB コードのコンポーネントの 10 進数値を見つけます。 (答え: (204,204,204)、(255,204,204)、(204,204,255)、(0,0,102)、(255,255,102)、(104,255,255)、(153,34,153)、(153,155,153)、 )

7. 色の深さとは何ですか? 色深度とファイルサイズはどのように関係していますか?

8. 図面に 65536 色が使用されている場合、色深度はどれくらいですか? 256色? 16色? (答え: 16 ビット、8 ビット、4 ビット)

9. 黄色の場合、12 ビット エンコードを使用して赤、緑、青のコンポーネントを見つけます。 (答え:R=G=15、B=0)

10. 64 色を使用するファイル内でパレットはどのくらいのスペースを占めますか? 128色?

11. True Color モードでは、40x50 ピクセルの画像のコードは何バイトかかりますか? 256 色のパレットを使用してエンコードする場合? 16 色の​​パレットを使用してエンコードする場合はどうすればよいですか? 黒と白(2色)ですか? (答え:6000、2000、1000、250)

12. ピクセルあたり 12 ビットの色深度でエンコードした場合、80x100 ピクセルの画像のコードは何バイトかかりますか? (答え:12000)

13. 32x32 ピクセルのラスター イメージを保存するには、512 バイトのメモリが割り当てられました。 画像パレット内の色の最大数はいくつですか? (答え: 16)

14. 128 x 128 ピクセルのラスター イメージを保存するには、4 キロバイトのメモリが割り当てられました。 画像パレット内の色の最大数はいくつですか? (答え: 4)

15. ラスターグラフィックスファイルを変換する過程で、色数が1024色から32色に減りました。ファイルの情報量は何倍に減りましたか? (答え:2回)

16. ラスターグラフィックスファイルを変換する過程で、色数が512色から8色に減りました。ファイルの情報量は何倍に減りましたか?(答え:3倍)

17. モニター画面の解像度は 1024 x 768 ピクセル、色深度は 16 ビットです。 このグラフィックス モードに必要なビデオ メモリの量はどれくらいですか? (答え: 1.5MB)

18. 256 色のラスター グラフィック ファイルを白黒 (2 色) に変換すると、サイズが 70 バイト減少しました。 元のファイルのサイズはどれくらいでしたか? (答え:80バイト)

19. 64 色、32 x 128 ピクセルのビットマップ グラフィックを保存するにはどれくらいのメモリが必要ですか? (答え: 3KB)

20. 高さが幅の半分の場合、1.5 MB のディスク領域を占有する、64 色のパックされていない長方形のビットマップの幅 (ピクセル単位) はいくらですか? (答え:2048年)

21. 高さが幅の 2 倍である場合、1 MB のディスク領域を占める長方形の 16 色の​​アンパックされたビットマップ イメージの幅 (ピクセル単位) はいくらですか? (答え: 1024)

ラスター、ピクセル、サンプリング、解像度

あらゆる種類の情報と同様、コンピューター内の画像はバイナリ シーケンスとしてエンコードされます。 これらは 2 つの根本的に異なるエンコード方式を使用しており、それぞれに独自の長所と短所があります。

線と領域はどちらも無数の点で構成されます。 これらの各ドットの色をコード化する必要があります。 それらが無限にある場合、これには無限の量のメモリが必要であるという結論がすぐに得られます。 したがって、「ポイントバイポイント」方式で画像をエンコードすることはできません。 ただし、このアイデアはまだ使用できます。

白黒の描画から始めましょう。 ひし形の画像にグリッドを重ねて正方形に分割したとします。 このグリッドはラスターと呼ばれます。 次に、各正方形の色 (黒または白) を決定します。 一部が黒く塗られ、一部が白く塗られた正方形の場合、どちらの部分(黒または白)が大きいかに応じて色を選択します。

写真1。

ピクセル正方形で構成されるいわゆるラスター画像があります。

定義 1

ピクセル(英語: ピクセル = 絵素、絵素) は、独自の色を設定できる絵の最小要素です。 「通常の」図面を正方形に分割した後、その離散化を実行しました。つまり、単一のオブジェクトを個別の要素に分割しました。 確かに、私たちは単一の分割不可能な図面、つまり菱形のイメージを持っていました。 その結果、ピクセルのセットである個別のオブジェクトを受け取りました。

サンプリングの結果として得られる白黒画像のバイナリ コードは次のように構築できます。

  • 白いピクセルを 0 に置き換え、黒いピクセルを 1 に置き換えます。
  • 結果のテーブルの行を順番に書き出します。

例1

これを簡単な例で示してみましょう。

図2。

この図の幅は $8$ ピクセルであるため、テーブルの各行は $8$ 個の 2 進数 (ビット) で構成されます。 非常に長い 0 と 1 の連鎖を書き込まないようにするには、$4$ 隣接ビット (4 進数) を 1 つの 16 進数でエンコードする 16 進数体系を使用すると便利です。

図3.

たとえば、最初の行ではコード $1A_(16)$ が得られます。

図全体の場合: $1A2642FF425A5A7E_(16)$。

注1

離散化の結果、何が得られ、何が失われたのかを理解することは非常に重要です。 最も重要なことは、図面をバイナリ コードでエンコードできたことです。 ただし、描画は歪んでいました。ダイヤモンドの代わりに正方形のセットが表示されました。 歪みの理由は、元の画像の一部の正方形の部分が異なる色でペイントされているのに、エンコードされた画像では各ピクセルが必ず 1 つの色を持っているためです。 したがって、元の情報の一部はエンコード中に失われます。 これは、たとえば画像を拡大すると、正方形が大きくなり、画像がさらに歪みます。 情報損失を減らすには、ピクセル サイズを小さくする、つまり解像度を上げる必要があります。

定義 2

許可画像サイズの 1 インチあたりのピクセル数です。

解像度は通常、1 インチあたりのピクセル数で測定されます (英語表記 $ppi$ = 1 インチあたりのピクセル数を使用します)。 たとえば、$254$ppi$ の解像度は、1 インチあたり $254$ ピクセル ($25.4$mm) があることを意味し、各ピクセルには $0.1x0.1$mm の元の画像の正方形が「含まれる」ことになります。 解像度が高いほど、画像はより正確にエンコードされます(失われる情報は少なくなります)が、同時にファイルのサイズも増加します。

カラーコーディング

図面に色が付いている場合はどうすればよいですか? この場合、ピクセルの色をエンコードするには 1 ビットでは不十分になります。 たとえば、写真に示されているロシアの国旗 $4$ の画像では、色は黒、青、赤、白です。 4 つのオプションの 1 つをエンコードするには $2$ ビットが必要なので、各色のコード (および各ピクセルのコード) は 2 ビットで構成されます。 $00$ が黒、$01$ が赤、$10$ が青、$11$ が白を表すものとします。 次に、次のテーブルが得られます。

図4.

唯一の問題は、画面に表示されるときに、どの色がこのコードまたはそのコードに対応するかを何らかの方法で判断する必要があることです。 つまり、色情報は数値 (または数値のセット) として表現されなければなりません。

人は光を多数の電磁波として認識します。 特定の波長は特定の色に対応します。 たとえば、500 ~ 565 nm の波長は緑色です。 いわゆる「白色」光は、実際には可視範囲全体にわたる波長の混合物です。

現代の色覚概念 (ヤングヘルムホルツ理論) によれば、人間の目には 3 種類の感受性要素が含まれています。 それぞれが光の流れ全体を認識しますが、1 つ目は赤色領域、2 つ目は緑色領域、3 つ目は青色領域で最も感度が高くなります。 色は、3 種類の受容体すべての刺激の結果です。 したがって、明るさの異なる 3 つの光線 (赤、緑、青) だけを使用して、任意の色 (つまり、一定の長さの波を知覚する人の感覚) を模倣できると考えられています。 したがって、どの色も赤、緑、青の 3 つの成分にほぼ分解されます。 これらの成分の強さを変えることで、あらゆる色を作り出すことができます。 このカラーモデルは、英語の red、green、blue の頭文字をとって RGB と呼ばれます。

RBG モデルでは、各コンポーネント (または、各チャネルとも呼ばれます) の明るさは、ほとんどの場合、$0$ から $255$ までの整数としてエンコードされます。 この場合、カラー コードは、個々のチャンネルの明るさを表す 3 つの数字 (R、G、B) です。 色 ($0,0,0$) は黒、($255,255,255$) は白です。 すべてのコンポーネントの明るさが等しい場合、黒から白までのグレーの階調が得られます。

図5.

明るい赤 (ピンク) 色を作成するには、赤 ($255,0,0$) の緑と青のチャンネルの明るさを均等に上げる必要があります。たとえば、色 ($255, 150, 150$) は次のようになります。ピンク。 すべてのチャンネルの明るさを均一に下げると暗い色になります。たとえば、コード ($100,0,0$) の色は濃い赤色になります。

3 つの色それぞれに合計 256 ドルの明るさのオプションがあります。 これにより、$256^3= $16,777,216 のシェードをエンコードできるようになり、人間にとっては十分以上です。 $256 = 2^8$ であるため、3 つのコンポーネントはそれぞれメモリ内で $8$ ビットまたは $1$ バイトを占有し、特定の色に関するすべての情報は $24$ ビット (または $3$ バイト) を占有します。 この値は色深度と呼ばれます。

定義 3

色深度ピクセルの色のエンコードに使用されるビット数です。

$24$ ビットのカラー エンコーディングは、トゥルー カラー モードと呼ばれることがよくあります。 このエンコーディングで画像の体積をバイト単位で計算するには、各ピクセルの色が 3 バイトでエンコードされるため、ピクセルの総数を決定し (幅と高さを掛けます)、その結果に $3$ を掛ける必要があります。 たとえば、トゥルー カラーでエンコードされた $20×30$ ピクセルの画像は、$20×30×3 = 1800$ バイトを要します。

トゥルー カラー モードに加えて、$16$ ビット コーディング (英語: High Color) も使用されます。このとき、$5$ ビットが赤と青のコンポーネントに割り当てられ、$6$ ビットが緑コンポーネントに割り当てられます。人間の目はより敏感です。 ハイカラー モードでは、$2^(16) = $65,536 の異なる色をエンコードできます。 携帯電話では、12 ビットのカラーコーディングが使用されます (チャネルあたり 4 ビット、4,096 色)。

パレットを使ったコーディング

一般に、使用する色が少ないほど、カラー画像の歪みは大きくなります。 したがって、カラーをエンコードする場合、情報の損失も避けられず、サンプリングによって生じる損失に「追加」されます。 非常に多くの場合 (図、ダイアグラム、図面など)、画像内の色の数は少ない ($256$ 以下)。 この場合、パレットコーディングが使用されます。

定義 4

カラーパレットは、RGB モデルのコンポーネントとして指定された各色が数値コードに関連付けられているテーブルです。

パレットを使用したコーディングは次のように行われます。

  • 色の数 $N$ を選択します (通常は $256$ 以下)。
  • True Color パレット ($16,777,216 色) から任意の $N$ 色を選択し、それぞれについて RGB モデル内のコンポーネントを見つけます。
  • 各色には $0$ から $N–1$ までの番号 (コード) が割り当てられます。
  • 最初にコード $0$ で色の RGB コンポーネントを書き留め、次にコード $1$ で色のコンポーネントを書き留めることによってパレットを作成します。

各ピクセルの色は、RGB コンポーネント値としてではなく、パレット内の色番号としてエンコードされます。 たとえば、ロシアの国旗の画像をエンコードする場合 (上記を参照)、$4$ カラーが選択されました。

  • 黒: RGB コード ($0,0,0$); バイナリ $002$;
  • 赤: RGB コード ($255,0,0$); バイナリ $012$;
  • 青: RGB コード ($0,0,255$); バイナリ$102$;
  • 白: RGB コード ($255,255,255)。 バイナリ コード $112$。

したがって、通常、ファイルの先頭 (ファイル ヘッダーと呼ばれる) の特別なサービス領域に書き込まれるパレットは、4 つの 3 バイト ブロックで構成されます。

図6.

各ピクセルのコードはわずか 2 ビットしか必要としません。

$256$ を超える色量のパレットは実際には使用されません。

ラスターコーディングの長所と短所

ラスターコーディングには、 尊厳:

  • ユニバーサルメソッド (あらゆる画像をエンコード可能)。
  • 写真など、明確な境界がないぼやけた画像をエンコードして処理するための唯一の方法。

そして 欠陥:

  • サンプリング中には常に情報の損失が発生します。
  • 画像のサイズを変更すると、画像内のオブジェクトの色と形状が歪みます。サイズを大きくする場合は、失われたピクセルを何らかの方法で復元する必要があり、サイズを小さくする場合は、いくつかのピクセルを 1 つのピクセルに置き換える必要があるためです。
  • ファイル サイズは画像の複雑さには依存せず、解像度と色深度によってのみ決まります。

一般に、ラスター イメージの容量は大きくなります。

図面に色が付いている場合はどうすればよいですか? この場合、ピクセルの色をエンコードするには 1 ビットでは十分ではなくなります。 たとえば、図に示すロシア国旗の画像には、黒、青、赤、白の 4 色があります。 4 つのオプションの 1 つをエンコードするには 2 ビットが必要なので、各色のコード (および各ピクセルのコード) は 2 ビットで構成されます。 00 が黒、01 が赤、10 が青、11 が白を表すものとします。 次に、次のテーブルが得られます。

唯一の問題は、画面に表示されるときに、どの色がこのコードまたはそのコードに対応するかを何らかの方法で判断する必要があることです。 つまり、色情報は数値 (または数値のセット) として表現されなければなりません。

人は光を多数の電磁波として認識します。 特定の波長は特定の色に対応します。 たとえば、長さ 500 ~ 565 m の波は緑色です。 いわゆる「白色」光は、実際には可視範囲全体にわたる波長の混合物です。

RBGモデルでは、各成分の明るさが

(または、彼らが言うように、各チャネル) 最も頻繁に

は 0 ~ 255 の整数としてエンコードされます。この場合

カラーコードは、3 つの数字 (R、G、B)、明るさの 3 つです。

別々のチャンネル。 色 (0,0,0) は黒です

色、(255,255,255) は白です。 図 5 のすべてのコンポーネントがある場合、

明るさが等しいため、黒から白までのグレーの色合いになります。 Web ページのカラー エンコーディングでも RGB モデルが使用されますが、チャネルの輝度は 16 進数 (00 16 から FF 16) で書かれ、カラー コードの前に # が付きます。 たとえば、赤色のカラー コードは #FF0000 と表記され、青色のカラー コードは #0000FF と表記されます。

いくつかのカラーコードを次に示します。

表1

3 つの色それぞれに合計 256 の明るさのオプションがあります。 これにより、256 3 = 16,777,216 の色合いをエンコードできるようになり、人間にとっては十分以上です。 256 = 2 8 であるため、3 つのコンポーネントはそれぞれメモリ内で 8 ビットまたは 1 バイトを占有し、特定の色に関するすべての情報は 24 ビット (または 3 バイト) を占有します。 この値は色深度と呼ばれます。

色深度は、ピクセルの色のエンコードに使用されるビット数です。 グラフィック情報のコーディング

24 ビット カラー エンコーディングは、トゥルー カラー モードと呼ばれることがよくあります。 このエンコードでピクチャの体積をバイト単位で計算するには、各ピクセルの色が 3 バイトでエンコードされるため、ピクセルの合計数を決定し (幅と高さを乗算)、その結果を 3 で乗算する必要があります。 たとえば、True Color でエンコードされた 20x30 ピクセルの画像は、20x30x3 = 1800 バイトを要します。 もちろん、これには、最新のすべてのグラフィック ファイル形式で使用されている圧縮は考慮されていません。 さらに、実際のファイルには、サービス情報 (画像の寸法など) を含むヘッダーがあります。 トゥルー カラー モードに加えて、16 ビット コーディング (英語の HighColor、つまり「ハイ」カラー) も使用されます。このとき、人間の目が認識する赤と青の成分に 5 ビット、緑の成分に 6 ビットが割り当てられます。より敏感です。 HighColor モードでは、2 16 = 65,536 の異なる色をエンコードできます。 携帯電話は 12 ビットのカラーコーディング (チャネルあたり 4 ビット、4096 色) を使用します。 一般に、使用する色が少ないほど、カラー画像の歪みは大きくなります。 したがって、カラーをエンコードする場合、情報の損失も避けられず、サンプリングによって生じる損失に「追加」されます。 ただし、使用する色数が増えると、ファイル サイズも大きくなります。 たとえば、トゥルー カラー モードでは、ファイルは 12 ビット エンコードの場合の 2 倍の大きさになります。 非常に多くの場合 (図、ダイアグラム、図面など)、画像内の色の数は少ない (256 色以下)。 この場合、パレットコーディングが使用されます。

カラー パレットは、RGB モデルのコンポーネントとして指定された各色が数値コードに関連付けられているテーブルです。

パレットを使用したコーディングは次のように行われます。

  • · 色の数 N (通常は 256 以下) を選択します。
  • · True Color パレット (16,777,216 色) から任意の N 色を選択し、それぞれについて
  • · それらから RGB モデルのコンポーネントを見つけます。
  • · 各色には 0 から N-1 までの番号 (コード) が割り当てられます。
  • · 最初にコード 0 の色の RGB コンポーネントを記録し、次にコード 1 の色のコンポーネントを記録することによってパレットを構成します。
  • · 各ピクセルの色は、RGB コンポーネント値としてではなく、パレット内の色番号としてエンコードされます。

たとえば、ロシアの国旗の画像をエンコードする場合 (上記を参照)、4 色が選択されました。

  • · 黒: RGB コード (0,0,0)。 バイナリコード002;
  • · 赤: RGB コード (255,0,0)。 バイナリコード012
  • 青: RGB コード (0,0,255)。 バイナリコード102。
  • · 白: RGB コード (255,255,255)。 バイナリコード112。

したがって、通常、ファイルの先頭にある特別なサービス領域に書き込まれるパレットは、次の 4 つの 3 バイト ブロックになります。

各ピクセルのコードはわずか 2 ビットしか必要としません。 N 色を含むパレットを使用して (圧縮を考慮せずに) 描画のボリュームを大まかに見積もるには、次のものが必要です。

  • · パレット サイズ (3×N バイトまたは 24×N ビット) を決定します。
  • · 色の深さ (ピクセルあたりのビット数) を決定します。つまり、2 k? となるような最小の自然数 k を見つけます。 N;
  • · 画像の寸法を乗算してピクセルの総数 M を計算します。
  • ・MCHkビットの主要部分の情報量を決定する。

この表は、いくつかのパレット エンコード オプションに関するデータを示しています。

表2

256 色を超えるパレットは実際には使用されません。 RGB コーディングは、モニターやラップトップ画面などのデバイスによって発せられる色を最もよく表します。 紙に印刷された画像を見ると、状況はまったく異なります。 私たちは、光源から目に入る直接光線ではなく、表面から反射された光線を見ます。 何らかの光源(太陽、電球)からの、可視範囲全体の波を含む「白色光」が、絵の具が塗布された紙に当たります。 塗料は光線の一部を吸収し(そのエネルギーは加熱に費やされます)、残りの光線が目に入ることで、これが私たちが見る色になります。


たとえば、絵の具が赤い光線を吸収すると、青と緑の光線だけが残り、私たちは青に見えます。 この意味で、赤と青の色は、緑 - 紫、青 - 黄色のペアのように、互いに補い合います。

実際、白から緑を減算すると (RGB コードは #FFFFFF)、色 #FF00FF (紫、マゼンタ) が得られ、青を減算すると色 #FFFF00 (黄色) が得られます。

追加の 3 色 - ブルー、

紫と黄色 - 色は構築中です

CMYモデル(英語:Cyan-青、Magenta-)

紫、黄色 - 黄色)、使用されます

印刷用。 図8

C=M=Y=0 の値は、白い紙にペイントが適用されていないことを示し、すべての光線が反射され、これが白の色になります。 青を追加すると、赤い光線が吸収され、青と緑の光線だけが残ります。 青色の光線を吸収する黄色の塗料を上から塗ると、緑色だけが残ります。

青、紫、黄色のペイントを適用すると、理論的には色はすべて吸収されます。 ただし、実際にはすべてがそれほど単純ではありません。 ペイントが完璧ではないので、黒ではなく汚い茶色になってしまいます。 さらに、黒い部分を印刷するときは、1 か所に 3 回分のインクを「注ぐ」必要があります。 また、プリンターでは黒のテキストが印刷されることが多く、カラー インクは黒インクよりもはるかに高価であることも考慮する必要があります。

この問題を解決するために、ペイントのセットに黒が追加されます。これはいわゆるキーカラー (英語の Keycolor) であり、結果として得られるモデルは CMYK と指定されます。 ほとんどのプリンタで印刷される画像は、これら 4 色のドットで構成されており、これらのドットは互いに非常に近いパターンで配置されています。 これにより、デザインにさまざまな色があるかのような錯覚が生まれます。 RGB および CMY (CMYK) カラー モデルに加えて、他のカラー モデルもあります。 それらの中で最も興味深いのは、人間の自然な知覚に最も近いHSBモデル(英語のHue - トーン、色相; Saturation - 彩度、Brightness - 明るさ)です。 色調は、例えば、青、緑、黄色である。 彩度はトーンの純度であり、彩度をゼロに下げるとグレーになります。 明るさは、色がどの程度明るいか暗いかを決定します。 明るさがゼロになると、どの色も黒になります。

厳密に言えば、RGB、CMYK、HSV モデルでエンコードされた色は、その色が表示されるデバイスによって異なります。 「絶対」色をエンコードするには、国際標準である Lab モデル (Lightness - 明度、a および b - トーンと色の彩度を決定するパラメーター) が使用されます。 このモデルは、たとえば、RGB から CMYK へ、またはその逆に色を変換するために使用されます。

通常、印刷用の画像はコンピューター上で (RGB モードで) 準備され、CMYK カラー モデルに変換されます。 この場合、印刷時にモニター上と同じ色を得ることが課題となります。 そしてここで問題が発生します。 実際のところ、画面上にピクセルを表示するとき、モニターはいくつかの数値(RGBコード)を受け取り、それに基づいてピクセルを何らかの色で「ペイント」する必要があります。 これは重要な結論につながります。

モニターに表示される色はモニターの特性や設定によって異なります。

これは、たとえば、赤色 (R=255、G=B=0) がモニターごとに異なることを意味します。 おそらく、テレビやモニターを販売する店でこの効果を見たことがあるでしょう。同じ画像がそれぞれのモニターで異なって見えるのです。 何をするか?

まず、モニターが調整され、明るさ、コントラスト、白、黒、グレーの色が調整されます。 次に、カラー画像を扱う専門家は、モニター、スキャナ、プリンター、その他のデバイス用のカラー プロファイルを使用します。 プロファイルには、実際のどの色がさまざまな RGB コードまたは CMYK コードに対応するかに関する情報が保存されます。 プロファイルを作成するには、赤、緑、青の範囲の光線を受け取る 3 つのセンサーを使用して色を「測定」するキャリブレーター (比色計) という特別なデバイスが使用されます。 最新のグラフィック ファイル形式 (たとえば、Adobe Photoshop プログラムの .PSD 形式) には、ピクセル コードとともに、描画が作成されたモニターのプロファイルも含まれています。 プリンターでの印刷結果をモニター上の画像とできるだけ近づけるためには、(モニター プロファイルを使用して) 必要な「絶対」色 (たとえば、Lab モデル) を決定する必要があります。ユーザーは、印刷時に最も近い色を与える CMYK コードを (プリンター プロファイルを使用して) 見つけます。

問題は、RGB モデルのすべての色を印刷できるわけではないことです。 これは主に明るく飽和した色に当てはまります。 たとえば、明るい赤色 (R=255、G=B=0) は印刷できませんが、CMYK モデルで最も近い色 (C=0、M=Y=255、K=0) を RGB に変換すると印刷できます。 R=237、G=28、B=26 の範囲の値を与えます。 したがって、明るい色を CMYK に変換すると (明るいデザインを印刷すると)、色は暗くなります。 プロのデザイナーはこれを考慮する必要があります。

したがって、ラスター エンコードでは、画像がピクセルに分割 (サンプリング) されます。 各ピクセルには単一の色が割り当てられ、ほとんどの場合、RGB コードを使用してエンコードされます。 実際には、これらの作業はスキャナ(画像入力装置)とデジタルカメラによって行われる。

ラスターコーディングには次の利点があります。

  • ユニバーサルメソッド (あらゆる画像をエンコード可能)。
  • · ぼやけた画像をエンコードして処理するための唯一の方法。
  • · 写真などの明確な境界。

ラスターコーディングには次のような欠点があります。

  • · サンプリング中には常に情報の損失が発生します。
  • · 画像のサイズを変更すると、画像内のオブジェクトの色と形状が歪みます。サイズを拡大する場合は、失われたピクセルを何らかの方法で復元する必要があり、縮小する場合は、いくつかのピクセルを 1 つのピクセルに置き換える必要があるためです。
  • · ファイル サイズは画像の複雑さには依存せず、解像度と色深度によってのみ決まります。
  • · 一般に、ラスター イメージは容量が大きくなります。

ラスター グラフィックスにはさまざまな形式があります。 最も一般的なものは次のとおりです。

BMP (英語のビットマップ - ビットマップ、拡張子 .bmp を持つファイル) - Windows オペレーティング システムの標準形式。 パレット化およびトゥルーカラー エンコーディングをサポートします。

JPEG (英語: JointPhotographicExpertsGroup - 専門写真家の共同グループ、拡張子が .jpg または .jpeg のファイル) - 写真をエンコードするために特別に開発された形式。 True Color モードのみをサポートします。 ファイル サイズを小さくするために強力な圧縮が使用され、画像がわずかに歪みます。そのため、境界が明確な図面には圧縮を使用することはお勧めできません。

GIF (英語: GraphicsInterchangeFormat - 画像、拡張子 .gif を持つファイルを交換するための形式) - パレット (2 ~ 256 色) によるコーディングのみをサポートする形式。 以前の形式とは異なり、画像の一部を透明にすることができます。つまり、背景が Web ページ上で「透けて見えます」。 最新バージョンの GIF 形式ではアニメーション画像を保存できます。 可逆圧縮が使用されます。つまり、圧縮中に画像が歪みません。

PNG (PortableNetworkGraphics - ポータブル ネットワーク イメージ、拡張子 .png のファイル) - トゥルー カラー モードとパレット エンコーディングの両方をサポートする形式。 画像の一部は透明または半透明にすることができます (32 ビット RGBA エンコーディング、4 番目のバイトで透明度を指定します)。 画像は歪みなく圧縮されます。 アニメーションはサポートされていません。

検討されている形式のプロパティを表にまとめます。

表3

あらゆる種類の情報がバイナリ コード、つまり 0 と 1 の連鎖の形式でコンピュータ メモリに保存されていることはすでにご存知でしょう。 このような連鎖を受け取った以上、それが文字なのか絵なのか音声なのか映像なのか全く分かりません。 たとえば、コード 11001000 2 は、数字 200、文字「I」、トゥルー カラー モードのピクセル カラーのコンポーネントの 1 つ、256 色のパレットを持つ画像のパレット内の色番号、色を表すことができます。白黒写真などの8ピクセル。 コンピューターはバイナリデータをどのように理解するのでしょうか? まず、ファイル名拡張子に注目する必要があります。 たとえば、ほとんどの場合、拡張子 .txt のファイルにはテキストが含まれ、拡張子 .bmp、.gif、.jpg、.png のファイルには画像が含まれます。

ただし、ファイル拡張子は必要に応じて変更できます。 たとえば、テキスト ファイルの拡張子を .bmp にし、JPEG 形式の画像の拡張子を .txt にすることができます。 したがって、特別な形式のすべてのファイル (プレーン テキスト、.txt を除く) の先頭にはヘッダーが書き込まれ、これによってファイルの種類とその特性を「知る」ことができます。 たとえば、BMP ファイルは文字「BM」で始まり、GIF ファイルは文字「GIF」で始まります。 さらに、タイトルには、画像のサイズとその特性 (パレット内の色数、圧縮方法など) が示されます。

この情報を使用して、プログラムはファイルの主要部分を「復号」し、それを画面に表示します。



読むことをお勧めします