coluli

最近は、デジカメのテスト撮影ばかりやっています。

Point vs Pixel

(補)書いた後で読み返してみましたが、我ながらたいへんわかりづらい内容ですね。一言でいえば、
「MS Pゴシックアンチエイリアスなしのユーザーを対象にデザインするのはしんどいな〜」
という事です。


気付いてしまったのでエントリー。

OSXは、画面解像度が72ppi*1 であることを前提に設計されています*2
 →したがってpixel=pointとなります*3 。10ptの文字は、10pxの文字として表示されます。

Adobeのソフトウェアもそうです*4 。画面解像度が72ppiであることを前提に設計されています。

Windowsは、画面解像度が96ppiであることを前提に設計されています*5
 →OSXAdobeのソフトに比べ「モニタのキメが細かいことを前提にしている」ともいえます。
  10ptの文字は、11096/72=104/3≒10*1.333... 約13.3pixelを使って表示されます。

現在のほぼすべてのWebブラウザは*6 、画面解像度が96ppiであることを前提にhtmlを解釈します。
 →「10px」、とピクセルで指定されたら10px相当の文字サイズで描画しますが、「10pt」とポイントで指定されたら96/72*10=13.333pxのサイズの文字を描画します。

ここまでよろしいでしょうか。
上記の前提から、

Adobeのソフトウェア、PhotoshopFireworksなどのグラフィックソフトでは、ptによるhtmlの文字組みのデザインシミュレーションはできません。かなりアバウトな近似値となります。

「いいじゃん、べつにできなくたって。pxの絶対指定*7 で組めば、そのシミュレーションはできるんでしょ」
いやいや、整数値のpxで絶対指定する限り、ブラウザの文字サイズは、整数値のptとむりやり解釈され(小数点以下は四捨五入)、意図しないサイズでの指定となってしまいます。それを実装後に微調整するのは馬鹿らしいと思いませんか*8

「もう全部相対指定でいいじゃん。具体的な文字サイズはユーザーが最終決定すればいいじゃん」
いやいや、MS Pゴシックなど、ビットマップを持ったフォントは文字サイズによってキャラクター(文字形状やウェイト感)がかなりバラつくので、コントロールしておきたいのです。

結論。 96ppiはうざいですね。WindowsXP日本語版を対象にするのはほんとにうざい。まあ、諸悪の根源はMS Pゴシックなんですが......。
アンチエイリアス文字表示万歳。ヒラギノ万歳、メイリオ(一応)万歳です。


上記は未検証な部分も多く、関連する疑問はほかにもありますが、今日はここまで。


*1:たいていは、「dpi(dots per inch)」と書かれることが多いようですが、やはりここはppi(pixels per inch)でしょう。

*2:Appleの液晶モニタの解像度が72ppiだ、ということではありません。いまどきそんな粗い液晶モニタはありません。

*3:USの単位では、1pt=72分の1インチとなります。何進法だよ。あ、12進法の6倍か。

*4:Macintosh版もWindows版もどちらも同じです(検証終わってません)。

*5:Vistaであれば、[個人設定]→[DPI スケール コントロール パネル]を使ってDPIスケールを変更できます。ただし、大きく(粗く)することができるだけで、デフォルトの96ppiが最小値のようです。72ppiとかにはできません。

*6:

昔のブラウザは、想定する画面解像度を変更できたような気がします。Macintosh版のIEなどがそうだったように記憶しています。

*7:絶対値指定の文字サイズのユーザー側の制御、ブラウザの機能が充実してきたので「文字大きくしたい人」問題はさほど重要でなくなった気はします。

*8:検証画面です。(実質的に)px指定は結局pt換算値を四捨五入して表示されていることがわかります。