coolsmart

雑記です。

画像解像度を変えずに画像を縮小する方法

こんにちは。

今日は画像解像度を変えずに画像を縮小する方法を紹介します。

 きっかけ

所用で超高品質に画像を印刷しなくてはいけなくて、色々と調べていました。

photoshopで解像度300dpi、カンバスサイズを縦横2mぐらいに設定して画像を作りました。その後、印刷するためにA2サイズのカンバスにさっき作った2mの画像を書き出して貼り付けたら、画像が粗い粗い。。なんでこんなになるんじゃーってことで、原因を調べてみました。

画像解像度(dots per inch)とは?

「画像解像度」とは、その画像がどのくらいの密度で構成されているかを表す数字のことです。
1インチの中に、いくつのピクセル(マス)が並んでいるのかを表しており、1インチあたりのピクセルの数が多いほど、画像解像度が高いといえます。
画像解像度の事を、dots per inch を略してdpiと呼びます。

f:id:coolsmart:20190722060754j:plain

10inch×10inch(10dpi)

上の画像はカンバスサイズ10×10(inch)で、画像解像度(dpi)を10に設定して作った画像です。つまり、1inchの長さにピクセルが10個並ぶわけですから、

100ピクセル×100ピクセル=10,000ピクセル

からなるキャンバスにお絵かきしてるわけです。この画像を印刷した時に劣化しないように、縮小していきましょう。

画像を劣化させずに縮小する

元画像の10×10(inch)サイズを1×1(inch)サイズに画像を劣化させずに縮小する方法を解説します。単純に同じ画像解像度(dpi)で1×1(inch)のカンバスに元画像をのっけてはめ込むと、下記のようになります。

f:id:coolsmart:20190722061822p:plain

1inch×1inch(10dpi)

めちゃくちゃ粗いですね(笑)かろうじて「A」と分かるかな。。

どうすれば綺麗に元画像のように「A」と認識できるような画像にすればいいんでしょうか。答えは画像解像度(dpi)を上げればいいんです。更に言えば、元画像のピクセル数と同じピクセル数にすれば、カンバスサイズは違くても、画像の綺麗さは全く同じになります。

元画像のピクセル数:10×10(inch)、10dpiで10,000ピクセル

これを縦の長さ=L、横の長さ=W、dpi=D、総ピクセル数=Tに置き換えると総ピクセル数を求める公式が以下になります。

(総ピクセル数を求める公式)L×W×D^D=T

ではこれに

L=1inch,W=1inch,T=10,000を代入するとカンバスサイズを落とした後のdpiの値が求められます。

LWDD=T

1×1×D^D=10000

D^D=10000

D=100

では、実際に1×1(inch)のカンバスサイズで100dpiに設定して画像を書き出してみました。photoshopメニューのイメージ>画像解像度から変更できます。

f:id:coolsmart:20190722063436j:plain

1inch×1inch(100dpi)

綺麗にかきだせました。勿論、元画像と比べると印刷した時の大きさは10分の1も違うのですが、見え方は全く同じになりました。見え方が同じというのは、縮小した画像を元画像と同じサイズに拡大しても(dpiを100dpiから10dpiに落としても)同じ画像になるという事です。

まとめ

画像を劣化させずに縮小するには、元画像の総ピクセル数を求めて、同じピクセル数になるようにdpiを設定して書き出す。

縦の長さ=L、横の長さ=W、dpi=D、総ピクセル数=Tに置き換えると総ピクセル数を求める公式が以下になります。

(総ピクセル数を求める公式)L×W×D^D=T