3

Java で文字列内のピクセルの XY 座標を取得しようとしていますが、方法がわかりません。

もっとわかりやすく説明しようと思います。

次のようなことをしたいとしましょう:

paint.setTextSize(40);
canvas.drawText("hello", 100, 100, paint);

しかし、実際にそのテキストを描画する代わりに、そのテキストに含まれるすべてのピクセルに対応する座標のリストが必要です。これは、テキストまたはキャンバスの開始点を基準にすることができますが、問題ではありません。

これはまったく可能ですか?Googleでそれについて何も見つけることができません。

ありがとう。

4

2 に答える 2

4

多大な努力なしにそれが可能であるかどうかは疑問です.

1つは、これは使用しているフォントによって異なります。

私が想像できる唯一の方法は、テキストを内部的に BufferedImage に描画し、各ピクセルの色をチェックすることです。

たとえば、白い背景に黒いテキストの色で描画します。

擬似コード:

for each pixel row{
    for each pixel column{
        if(pixel.getColor() == (new Color()).black)
           save coordinates
    }
}
于 2012-10-05T07:29:13.907 に答える
1

これはあなたの質問に答えるべきだと思います: テキスト領域の幅に応じてテキストサイズを計算する

テキストのサイズを決定することはできますが、個々のピクセルは書体や太さなどのパラメーターに依存します。

個々の文字の境界が必要な場合は、部分文字列を使用できます

于 2012-10-05T07:30:24.123 に答える