JPEGデータに埋め込まれたdpi値って無意味じゃね?

と感じる今日このごろ。

dpiとは

dpiとは dot per inchの略。1インチの長さの中に、どれだけのドットを詰め込むかを表す、密度の単位。画像などを出力するとき(ディスプレイに表示、紙に印刷、etc…)に関係してくるもの。

ちなみにドットとピクセルの違いについて、ドットは「物理的な点」でピクセルは「データ的な点」なんて解説されていることがある。たとえばディスプレイなんかはRGB各色の「ドット」が3つセットで並んでいて、その1セットで「1ピクセル」を表示している。
が、基本的にカラーが前提の現代において、ドットとピクセルの間は限りなく狭まっているとも思うので、厳密な区別はしないで書いていく。

dpiの話に戻って、dpiが高い(300dpi、350dpiなど)と、ドット密度が高いということになる。同じ長さ、面積の中にたくさんのドットが詰め込まれている。つまり高解像度(≒高画質)。

逆にdpiが低い(72dpi、96dpiなど)と、ドット密度が低いということになる。同じ長さ、面積の中にあまりドットが詰め込まれていない。つまり低解像度(≒低画質)。

画像データの仕組み

ところで、写真やイラスト(ベクターデータを除く)などのラスターデータは、ピクセルの集まりで画像を構成している。1920x1080pxなどというのがまさにそれで、横方向を1920個のピクセルで、縦方向を1080個のピクセルで、全部で2,073,600個のピクセルで表しているのがフルHD。

画像のデータは、各ピクセルがどんな色をしているかを記録していて、それが画像のサイズ分集まっているに過ぎない。例えるなら、方眼紙の1マスを単色で塗るルールで行う塗り絵。

では、そのデータを我々人間が認識するためには、ディスプレイや紙など、何かしらの媒体を通して実体化する必要がある。このとき、データのピクセルには大きさという概念がなく、あくまで「点」の集まりであるため、なにか定義を行う必要がある。このとき関係してくるのがdpi。

dpiの使い方

例えば幅が1920インチ(≒49メートル)、高さが1080インチ(≒27メートル)の巨大ディスプレイがあり、このディスプレイの画面解像度がフルHDだったとする。フルHD=1920x1080pxなので、1インチ四方のドット、マス目が並ぶことになる。これが1dpi。
対して幅が1.92インチ(≒4.9センチメートル)、高さが1.08インチ(≒2.7センチメートルの)の極小ディスプレイがあって、このディスプレイの画面解像度がフルHDならば、フルHD=1920x1080pxなので、0.001インチ四方のドット、マス目が並ぶことになる。これが1000dpi(ありえないが)。

繰り返しになるが、dpiとは1インチの長さの中に、どれだけのドットを詰め込むかを表す、密度の単位。1インチというのはあくまで物理的な長さを表す単位。ディスプレイや紙など、何かしらの媒体を通して実体化するときにのみ、dpiが関係してくる。

JPEGデータのdpi値

さて、JPEGデータ(にくっついているEXIFデータ)にはその画像のdpi値が設定できるようになっている。要するに「僕を実体化するときには○○dpiにしてください」と。これは言い換えると「僕を実体化するときには○○mmにしてください」と言っていることと同義。なぜならデータのピクセル数は決まっていて、dpiで密度が指定されれば、必然的に長さが決まるから。

でもそれって余計なお世話だろ、と。例えばA4(210x297mm)のチラシを印刷するためのデータを作っているときに、カメラで撮影した写真を取り込んだら「あ、僕は72dpiなので長辺2116mmでお願いします。紙からは結構はみ出しちゃいますけど」なんてことが許されてたまるか、と。

デザインに写真を取り込むならトリミングをしたり、用紙のうちのどれくらいの大きさに写真をするかなど、いろいろなリサイズや編集を掛けることになり、そこで初めて最終的なdpiが決まるのであって、事前に何dpiだからどうこうというのは起こりえないはず。

ただし、350dpiで○○mmの大きさに出力したい、だから〇〇pxが必要、というのはよくある話。しかしこれもdpiとmmの関係であって、dpiとpxの関係でないことがわかるだろう。

ということで長くなったが、JPEGデータがdpi値を持っている意味って無いよな、という話。