画像形式の説明(会話風)
A子
「じふ」ってやつなの?
C菜
PNGとJPEGの二種類です~
B美
A子
その人の会社のホームページでは「じふ」画像を使ってるらしいんだよね
B美
C菜
今の時代って、写真だったらJPEGで、イラストなんかの写真以外の画像についてはPNGが主流だと思うです~
A子
面倒くさっ!
B美
A子
そこまで気にしてないから…
C菜
A子社長も一緒にB美部長の講義を受けるです~
A子
B美
主にWeb系の話をしていくから、きっと役に立つはずよ
ちなみに、さっきA子が言った「たくさんの画像形式」って言葉だけどさ
さっき出てきた3つ以外にも、もっとたくさんの、具体的には十数個の形式があるんだからね
A子
B美
ラスター画像として、GIF、JPEG、PNGの3つ
ベクター画像としては、SVGくらいを知っていれば十分よ
あ、Web系に限定すれば…ってことだけど…
A子
…って、何なの?
C菜
うろ覚えですけど~
B美
A子も「一つの画像ファイルが点、言い換えれば画素の集まり」ってことくらいは知ってるわよね?
A子
デジタルカメラの性能を表すのに「何百万画素」なんて言ったりするよね
あれって、一つの画像を何個の画素で表すかって意味でしょ?
B美
あ、どうでもいい余談なんだけど、「ピクセル」って造語だからね
あれって「Picture Cell」の略だから…
C菜
そうだったんですかぁ~?
「ピクセル」って、一つの英単語だと思ってました~
B美
例えば横方向に300個の点が、縦方向に200個の点が並んでいる場合、その画像の点の総数は?
C菜
300×200で60,000点、言い換えれば60,000画素になります~
B美
もしも256色を実現したい場合、1点あたりの情報量は何ビットになる?
A子
B美
正解よ
では、1,677万色だったら?
A子
C菜
256×256×256ってことですから、24ビットだと思うです~
B美
24ビットつまり3バイトってことは、さっきの大きさの画像ファイルのファイルサイズはどうなると思う?
C菜
B美
あ、ちなみに24ビット色、つまり1,677万色のことを「フルカラー」と呼んで、コンピュータ上での最大の色数としているわ
なぜなら人間の眼球(及び脳)の性能的に、これ以上の色の違いを識別できないから…(苦笑)
A子
横300×縦200の画像って、めっちゃ小さいよね?
それって数KBくらいのファイルサイズだったような?
B美
C菜
圧縮してるんですよね~?
B美
でもね、圧縮って大きく分けて二種類あるのよ
一つは『可逆圧縮』、もう一つが『非可逆圧縮』
A子
また、なんだか難しげなことを…
B美
逆もまた可なり、つまり圧縮したファイルを元に戻す際、完全に元の状態にまで復元できるってのが『可逆圧縮』
可逆に非ず、つまり完全には元の状態に戻せないのが『非可逆圧縮』よ
A子
それって問題にならないの?
B美
1ビットでも正しく復元できないと、そのファイルは壊れることになるわ
(まぁ、テキストファイルについては、運が良ければ一部分が文字化けするくらいだけど…)
でも、画像ファイルの場合、少しくらいなら劣化していても問題にならないの
なぜなら画像(特に写真の場合)って、多少の劣化には気付かない、いえ気付けないから…(笑)
C菜
B美
だから、目の良い人は気付くかもね
A子
『非可逆圧縮』なんて使わずに…
C菜
B美
その通りよ
で、画像形式の話に戻るんだけど、GIFとPNGが『可逆圧縮』で、JPEGが『非可逆圧縮』になるのよ
あ、ただし注意が必要なのがGIFね
これって圧縮アルゴリズムが可逆なのは確かなんだけど、オリジナル画像より劣化する場合があるの
A子
可逆なのに劣化?
C菜
GIFって「フルカラー」じゃなくて、もっと少ない色数しか使えなかったはずですぅ~
B美
要するに、1点あたりの情報量が3バイト(24ビット)じゃなくて、1バイト(8ビット)しかないってこと
そのおかげで『可逆圧縮』であるにもかかわらず、小さなファイルサイズを実現できているってわけ
A子
だから写真はJPEGで、写真以外はPNGなのか…
どっちも「フルカラー」だもんね
B美
これでラスター画像の代表格3つは理解できたかしら?
あ、当然だけど、この3つはブラウザソフト上に描くことのできる画像形式だからね
下に3つの画像の比較を表示してみたわ
自分の目で確認してみてね
PNG画像 | JPEG画像 | GIF画像 |
62KB | 16KB | 14KB |
C菜
少ない色数で写真を表現しようとしているからですね~
あ、あとラスターって、英単語としてはどういう意味なんですか~?
B美
まぁ、気にするなってのが結論ね(苦笑)
A子
B美
「透過GIF」というのは、画像の背景を透明にして、後ろが透けて見えるようにしたもの
「アニメーションGIF」は、動画のように動きを加えたものね
C菜
B美
「透過GIF」って透明にする部分は100%透明になるんだけど、PNGの場合は1点ごとに透明度を設定できるの
これを「アルファチャンネル」って呼んでるわ
だからこそPNGって、1点あたり4バイトの情報量になるのよ(透明度設定の「アルファチャンネル」が1バイト分ある…つまり透明度は256段階で設定可)
A子
B美
これを「APNG」と呼びます
LINEのアニメーションスタンプでも使われてるから、結構有名ね
まぁ、GIFでできることは、だいたいPNGでもできるのよ
だってPNGって、GIFに対抗して生まれた画像形式なのだもの
C菜
なぜわざわざ新しい画像形式を作ったんですか~?
B美
だから完全にフリーな(無料で使える)画像形式を作ろうって考えたわけ
PNGの語源は、「Portable Network Graphics」の頭文字を取ったものなんだけど、「PNG not GIF」って意味もあるのよ(笑)
A子
でもさ
そうなるとPNG画像ってGIF画像よりもファイルサイズが大きくなるんじゃないの?
B美
あと『可逆圧縮』ってこともあるし…
でも今の時代、パソコンの性能がめっちゃ向上してるから、少しくらいファイルサイズが大きくなっても全然問題にならないのよ
インターネットの通信速度も速いしね
C菜
あとはベクター画像の説明ですね~
B美
例えば、画像の左上を原点(0, 0)として、「(10, 20)の点から(40, 20)の点まで太さ2で赤い色の直線を引け」なんて命令を記述するの
ブラウザソフトはこれを解釈して、その通りに描画するってわけ
A子
(X座標, Y座標)とするならだけど…
B美
ベクター画像の一つであるSVG画像って、実は単なるテキストファイルだったりするのよ
だからこそ、Windowsの「メモ帳」なんかのエディターソフトで簡単に編集できるってわけ
そうね
こんな感じかしら
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200" viewBox="0 0 300 200"> <rect x="0" y="0" width="300" height="200" stroke="while" fill="white" /> <circle cx="150" cy="100" r="66" stroke="red" fill="red" /> </svg> |
これをブラウザ上に表示したものが下の画像よ(わかりやすいように背景を灰色にしています)
B美
・原点(0, 0)から幅300ドット、高さ200ドットの四角形を白色の線で描き、その中を白色で塗りつぶせ
・座標(150, 100)を中心点として半径66ドットの円を赤色の線で描き、その中を赤色で塗りつぶせ
(上記SVG画像ファイルの中の赤文字の部分)
ってわけ
簡単でしょ?
A子
B美
なのでベクター画像って、CADでよく使われているのよ
C菜
あ、でもブラウザ上で使う利点が分からないです~
B美
さっきのSVG画像のファイルサイズって、約300バイトだから…
(だって、単なるテキストファイルだもの)
あと、ラスター画像って点の集まりだから、拡大表示すると斜め線の部分なんかがガタガタになるわよね
でもベクター画像だったら、拡大するつど描画し直すから、常に滑らかな線が引けるってわけ
下の画像の左半分がラスター画像を拡大したもので、右半分がベクター画像なのよ
比較すると一目瞭然でしょ?
A子
C菜
あ、ベクターの英単語の意味って何ですか~?
B美
もう分かったんじゃない?
C菜
B美
A子
画像を数式で表現するって説明にマッチしてる気がする(なんとなく…)
B美
Web系(Webページ)では
・写真をJPEGで、写真以外をPNGまたはGIFで描く
・必要に応じてベクター画像であるSVGを使用する(ただし、これは無理に使う必要無し)
…って感じかな
C菜
A子
しっかし、あいつはGIFだなんだと自慢げに話してたけど、そんなにたいした話じゃなかったじゃん
C菜
B美
まさか、あんた
付け焼き刃の知識でマウント取ろうなんて考えてないでしょうね?
A子
登場人物紹介ページはこちら