◆PROCESSING 逆引きリファレンス
カテゴリー:文字関連処理
文字列のピクセルサイズを知るには
【解説】
PROCESSINGで、文字数ではなく文字のピクセルサイズ(画面上で専有する幅)を知りたい場合は textWidth() 命令を利用します。
【構文】
textWidth( chr );
textWidth( str );
【パラメータ】
chr : char : 文字
str : String : 文字列
【戻り値】
float : 文字(または文字列)の幅
【注意】
文字列の幅は、利用するフォントデータによって異なります。また textFont() または textSize() 命令で指定した文字サイズによっても異なります。
【関連記事】
文字列の長さ(文字数)を知るには
●文字の幅を取得する例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
PFont pF1; void setup(){ //文字を読み込む pF1 = loadFont( "Meiryo-48.vlw" ); noLoop(); } void draw(){ String str; char c; str = "あい"; c = 'か'; textFont( pF1, 32 ); println( textWidth(str) ); //<--64.0 println( textWidth( c ) ); //<--32.0 } |
上記は Meiryoフォントを32ピクセルで利用する事を宣言した上で、String型とchar型の文字について、幅を取得しています。
Meiryoフォントでは、全角1文字は32.0ピクセルで、textFont()で宣言した通りの幅になっています。
●文字の幅を取得する例2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
PFont pF1; PFont pF2; void setup(){ //文字を読み込む pF1 = loadFont( "Meiryo-48.vlw" ); pF2 = loadFont( "IPAPGothic-48.vlw" ); noLoop(); } void draw(){ String str; str = "あ"; //Meiryoの文字幅 textFont( pF1, 32 ); println( textWidth(str) ); //<--32.0 //IPAPGothicの文字幅 textFont( pF2, 32 ); println( textWidth(str) ); //<--29.333334 } |
MeiryoフォントとIPAPGothicフォントを読み込み、String型全角1文字の幅を取得しています。
両方共32ピクセルで利用するように宣言していますが、IPAPGothicフォントはプロポーショナルフォントであるため、全角1文字の幅が29.333334となっている事に注目してください。
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。