1

ピクセル単位のフォントサイズを指定して、文字列の幅をピクセル単位で計算する方法を誰か教えてもらえますか? 私はLinuxの下でCでそれをしなければなりませんか?

4

3 に答える 3

4

固定小数点フォント(すべての文字の幅は常にXピクセル)がない限り、自分でそれを行うことはできません。その場合、もちろん合計幅= PixelPerChar * strlen(String)です。

プロポーショナルフォントの一般的なケースで、文字が互いに「プッシュ」される可能性がある場合、たとえばAとV(「カーニング」と呼ばれる操作)の場合は、フォントレンダリングライブラリ(libGD2など)に問い合わせる必要があります。このようなライブラリは通常、フォントファイル、サイズ、方向、およびその他のパラメータを指定して、文字列のバウンディングボックスを提供します。

gdImageStringFTを使用したGD2の例:

int bbox[8]; // x,y of the rectangle bounding the text:
// see manual

gdImageStringFT(NULL,  // "Tell me only"
      bbox,0,
      "/home/lserni/fonts/Verdana.ttf",18,
      0.0,0,0,"Hello world"); 

if (checks on bbox OK)
{
   gdImageStringFT(gdHandle, bbox, 0, ...);
}
于 2012-07-10T09:35:44.467 に答える
1

最も基本的なシナリオでは、固定長フォントであると仮定します:

int string_width = strlen(str) * CHAR_WIDTH_PX;

str は C 文字列で、CHAR_WIDTH_PX はフォントの文字幅です。

もちろん、フレームワークやシステムが異なれば、物事はさまざまな方法で行われます。そのために、お客様の環境に関する詳細情報が必要です。

于 2012-07-10T09:34:24.000 に答える
0

おそらくFreeType ライブラリのようなものが必要です

于 2012-07-10T09:36:25.763 に答える