私の目的は、テキスト画像を作成し、それを他の画像の上に置くことです。これは、テキスト イメージを作成するために使用するコマンドです。
String[] cp_img_arguments = {"convert",
"-size", width_size + "x",
"-background", background_colour,
"-pointsize", pointsize.toString(),
"-font", font_path,
"-fill",text_colour,
"caption:" + text,
destination};
必要な画像のサイズを計算するために、次のように FontsMetrics を使用します。
Font font = new Font(fontName, Font.PLAIN, pointsize);
Canvas canvas = new Canvas();
fontMetrics = canvas.getFontMetrics(font);
width_size = fontMetrics.stringWidth(toString());
テキストが切り捨てられた、または複数行の画像を生成することがよくありますが、これは、計算した幅が実際にはテキストに対して十分でないことを意味します。フォントは.ttf
ファイルから取得されます。この計算ミスは、GraphicsMagick の密度/DPI パラメータが原因で発生すると思います。私は現在それを使用していません(デフォルトは55だと思います)が、FontMetricsが計算するものと比較して、実際のフォントサイズにどのように影響するのだろうか.
gm を使用してテキストで画像を生成した経験のある人はいますか? 画像の寸法計算をより正確にする方法はありますか?