Raster image file format of minimum file size is JPEG
ラスタ画像のファイルサイズを小さくするには、ファイル形式にJPEGを採用すればよいことがわかった。
ソフトの操作説明や説明資料を作るときに、ウィンドウやウェブサイトでスクリーンショット(キャプチャ画像)を撮り、それを文書に取り込むことがよくある。直感的でわかりやすい文書を作るのに画像は役に立つ。しかし、画像を多く取り込むと文書のファイルサイズが大きくなり、動作が遅くなってしまう。これを回避するために、画像のファイルサイズは一定の品質を維持して、できるだけ小さくしたい。
ラスタ画像においてファイルサイズへの影響が大きい要素は、影響が大きい順に以下となっている。
- 解像度
- ファイル形式
- 圧縮率・品質
解像度とは、ファイルサイズではなく画像の物理的な大きさである。画像は画素(ピクセル、pixel)という点の集まりで表現される。この画素数のことを解像度と呼んでいる。単純に画素数が多ければ多いほど情報が多くなるため、ファイルサイズも必然的に大きくなる。例えば、100×200 pixelsの画像は100×100 pixelsの2倍の情報を持つことになる。画像は圧縮されているため、単純にはファイルサイズが2倍とはならないが、それでも解像度が大きくなればファイルサイズが大きくなることは避けられない。
解像度を下げるには、画像をリサイズすればよい。高機能なキャプチャソフトではリサイズの機能を持っている。例えば、Shutterでは[Screenshot]>[Run a plugin]>[Resize]と選択してリサイズのプラグインを起動することでリサイズを実現できる。経験的にだいたい300×300 pixels以内の解像度にすることで、JPEGのファイルサイズを概ね10-20 KB以内に抑えることができる。
次に、ファイルサイズに影響が大きいのはファイル形式である。ラスタ画像の形式にはいくつかあるが、一般的に広く使われているのはJPEGとPNGだろう。JPEGは写真のように色が多い画像に最適な形式であり、PNGはそれ以外の汎用的な画像形式となっている。これらの画像形式には、圧縮率や品質を選ぶことができ、またリサイズ後のファイルサイズについても異なっている。
そこで、jpgとpngで圧縮率を変えたファイルサイズがどう変化するか確認した。確認にあたって、LinuxのキャプチャソフトであるShutterを使い、設定を変更して実際にスクリーンショットを撮った。
測定に使用する画像は以下のファイラーNautilusの画面である。元々の解像度は857×532 pxである。
測定結果を以下の表に示す。
形式 | JPEG品質/PNG圧縮率 | ファイルサイズ(857×532 px)[kB] | リサイズ後サイズ(300×186 px)[kB] |
jpg | 100 | 221.7 | 35.3 |
jpg | 90 | 94.0 | 17.2 |
jpg | 60 | 50.5 | 8.9 |
png | 0 | 57.1 | 39.8 |
png | 9 | 58.2 | 39.8 |
この測定結果からは以下のことが読み取れる。
- 圧縮率・品質:
- JPEGは品質とファイルサイズが比例する。
- PNGは圧縮率を変更してもファイルサイズの変化が小さい。
- リサイズ後サイズ:
- JPEGはリサイズすることで、ファイルサイズが元々のファイルサイズの約15-20 %にまで小さくなる。
- PNGはリサイズしても、ファイルサイズは元々のファイルサイズの約 65-70 %までしか小さくならない。
このことから、ラスタ画像のファイルサイズを小さくしたければ、以下の項目に気をつければよさそうだ。
- ファイル形式にはJPEG形式を選択。
- 品質を60程度にまで下げる。
- リサイズする。