いつもお世話になっております。
今日は下記の文章が読みました。
「MS Pゴシック 11 ポイントは全て 8 ピクセル」
これは何の意味ですか教えてください。
たとえば、フォントを指定しますと、「a」という文字を表示しますと、
スクリーンに何のピクセルがかかるか計算できるという意味ですか?
でも、この計算方法は何ですか?
どこでそれ見たか?
画面プロパティDPI設定で変わるから違うこともある。情報不足だ。
調べるAPIあるよ。
今俺外だから判らん。
>「MS Pゴシック 11 ポイントは全て 8 ピクセル」
>これは何の意味ですか教えてください。
特に意味はありません。忘れましょう。
一般に
1.1ポイントは1/72[inch]とされています。
2.ディスプレイは96[dot/inch]と定義されている場合が多い。
ので、
3.1ポイントは 1/72[inch] * 96[dot/inch] = 1.333[dot]となります。
4.従って 11ポイントは、1.333[dot/point] * 11[pont] = 14.666[dot]
と計算するのが普通です。
情報不足が申し訳ありません。
下記のサイトに参照してください。
http://xml360.org/2007/10/31/excel-column-width/
To 仲澤@失業者さん
ポイントはピクセルですか?
dotはなんですか?
>ポイントはピクセルですか?
意味がわかりません。
>dotはなんですか?
1dot=1ピクセルです。
ディスプレイの場合 [DPI(=dot per inch)]単位とされるのでdot
と言ってみました・・・
普通、これくらいはわかってもらえるものでけど(vv;)。
尚、蛇足ですが、
当該のページの作者は、
フォントののポイント値とはフォントの「縦長」を意味するものである
ことを知らずに、ポイント値を横幅に関連させて考えています。
大前提が間違っているわけです。
しかし、こんなKBまであるんですね。
http://support.microsoft.com/kb/214123/ja
ということは、ディスプレーのDPI変えると
Excelの初期列幅が8.38以外になるのか。。どうでもいいけど。
http://xml360.org/2007/10/31/excel-column-width/
これExcelの話だな。
>ポイントはピクセルですか?
いいえ。
1ポイントは0.3528mmです。
ディスプレイの解像度の高さや画面の大きさに関係なく
(正しく機能していれば)10ポイントは3.528mmの大きさのこと。
でも現実は期待通りにならなかったりするけど。
>「MS Pゴシック 11 ポイントは全て 8 ピクセル」
>これは何の意味ですか教えてください。
恐らく画面のプロパティで96DPIという状態にしてあり、
「MS Pゴシック」という名前のフォントを使用し、
フォントのサイズに11ポイントを使用している場合は、
'0'と'1'と'2'と'3'と'4'と'5'と'6'と'7'と'8'と'9'の文字の幅が8ピクセルという意味。
ただ読めてないだけだな。
> http://xml360.org/2007/10/31/excel-column-width/
0 から 9 までの文字を描画した際に~省略~すべて8ピクセルである。
この重要な条件を消したら駄目。
>たとえば、フォントを指定しますと、「a」という文字を表示しますと、
>スクリーンに何のピクセルがかかるか計算できるという意味ですか?
8ピクセルだったと結果を述べているだけの文章に『計算できる』という意味なんてないよ。
例えば「aaaaaaaaaa」という文字列を表示して幅のピクセル数を目で数えて10で割れば
「a」の幅のピクセル数を調べることができる。
これも『計算できる』けれど
あなたが知りたいことはこの方法ではないよね。
文字列の幅はCDC::GetTextExtent(::GetTextExtentPoint32)で調べることができる。
無論、フォントやDPIで答えが変わる。
仲澤さん,wclrpさん説明拝見しました。
ポイントが何か値持っているとは知りませんでした。
今まで、フォントとdotの間の相対値だと思ってました。
(チョット意味がおかしいかな?)
とても参考になりました。
僕の意見ですか、
Jasonさんは何のために知りたいのですか?
知識としてなら、仲澤さん,wclrpさんの説明を参考にするといいです。
ただ、ソフトで何かするとなると話が別ですね。
ウインドウの拡大・縮小、ダイアログ上、FormView上、SDK座標上、スクロールView等皆
微妙に違うと思います。
もう少し具体的な話が欲しいですね。
ポイントに関しては元々出版で使われている用語だったと思います。
コンピュータ上での処理に使う事を目的にしたものではなかったと
思うので、概念的にはコンピュータとは関係有りません。
以下、私が以前に調べた内容です。
ポイント:
活字の寸法を表す基礎単位である。基本的には72ポイント≒1inchであるが、
長さの基準の取り方で、多少の差がある。
日本では、英語圏の基準のアメリカンポイントを採用している。
ディドーポイントはヨーロッパで用いられる。それぞれの寸法は下の通り。
didot point:ディドーポイント:1/72 old french inch=0.3759mm
american point:アメリカンポイント:1/72.27 inch=0.351459mm
big point:ビッグポイント:1/72 inch=0.3528mm
point:JISで定めるポイント=0.3514mm
ポイントとピクセル値の換算に関してはDPIが絡むので
解像度の設定によって変化する事は、既に皆様が書かれている通りですね。
早い話がポイントは長さに換算でき、長さからピクセルに換算できます。
あと、ITOさんも書かれていますけれど、
> Jasonさんは何のために知りたいのですか?
というのは重要だと思います。
目的によってはアプローチを変えた方が有益なケースもあるからです。
TrueType フォントは大抵はアウトラインフォントですが、日本語のフォントは小さいサ
イズではビットマップフォントになったはずです。その話かな?
いろいろ返事がありまして、ありがとうございます。
説明が不足、申し訳ございませんでした。もう一度説明させていただきます。
■問題
Excel列幅の計算方法を知りたいです。Excel関連開発をやっているので、列幅(ピクセル
単位)が取得できているのに、8.38という表示できる文字数をどのように計算しますか。
という質問です。
しかし、8.38は一定ではなく、フォントとポイントに関係があるかもと思います。調べて
みたところ、DPI、DOT、ポイント、インチ、mmなど用語が読んで、その間の関係は良くわ
かりません。
以上です。よろしく。
ポイントとは文字のサイズを表すサイズであり、
ポイントは長さ(インチ)に変換可能である。
DPIと長さ(インチ)からピクセル値を算出する事は普通に出来るはず。
ここまでは既に提示されている情報でわかると思います。
エクセルの列幅というのは現在設定されている標準フォントの半角文字が
表示可能な文字数というのがMicrosoftのホームページにあります。
( http://support.microsoft.com/kb/401638/ja)
あと分からない部分があるとしたら、標準フォントがプロポーショナルの時に
どうやって文字数を出しているのかと言う事だと思います。
そういう意味では、
「DPI、DOT、ポイント、インチ、mmなど用語が読んで、その間の関係は良くわかりません。」
と言うような状態では無いと思います。
既に提示されている情報を整理して何処がわかっていないのかを
再確認するべきだと思います。
提示されている情報を整理するのはあくまでもスレ主であるJasonさんの
仕事だと思いますよ。
ご指摘通り、これは私の仕事です。申し訳ございません。
しかし、いろいろ計算してみても、正しい値を算出できません。
例で説明する。
DPI = 96, ポイント=11の場合、
①ポイント→インチ
72ポイント≒1inchによると、11ポイント = 11/72 = 0.152777インチ
②インチ→DOT
DOT = 96(DPI)*0.152778 = 14.667
③ピクセル
もし「DOT == ピクセル」なら
11ポイントの一つ文字は14.667ピクセルであること
④文字個数
excel列幅は72ピクセルなので、
文字個数 = 72 / 14.667 ≒ 4.9
ですが、8.38になっているはずのに、どこか間違っているでしょう。
DOTはピクセルではないでしょうか?
もし認識が間違いであれば、ご指摘お願いします。
11ポイントは、「高さ」であって幅ではないのでは?