問題タブ [drawtext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1444 参照

android - android (高度な) DrawText を使用してビットマップ キャンバスを保存するが、テキストサイズの計算が必要

テキストを描画するキャンバスがあります。
(これはかなり高度です。フォローしていただければ幸いです)

以下の添付画像を参照してください。

機能は、画面をタップしてテキストサイズを変更できることです。
左画面をタップ=小さいフォント。
右の画面をタップするとフォントが大きくなります。
その後、画面上のテキストを移動することもできます。

テキストサイズが問題なく、テキストを必要な場所に移動したら
、元のビットマップに保存したいと思います。

私はoptions.inSampleSize = 4;最初にロードするために使用しますBitmap

もちろん、ビットマップを持つ ImageView は、元のイメージよりも小さくなります。
何らかの計算が必要です。これを行うのはかなり難しい傾向があります。

私はoptions.inSampleSize = 4ビットマップ比率を持っています。
横向きか縦向きかによって0.59、0.69くらいです。

私はそれをいじって、新しいビットマップを何らかの方法で変更しsetTextSize
て、ImageViewの小さなビットマップと同じように見せます。

ここで何ができますか?
画像のサイズがわからないので、私は感じています。
何らかの方法で Loaded Bitmap Ratio を固定比率にスケーリング/制約する必要があります。

次に、パーセンテージなどを使用して、テキストの場所をより大きな画像に転送する必要があります。
最初の位置(写真の赤い小さなボール)に関しては、私はそれを行うことができます. したがって、テキストの開始点。

しかし、テキストがどれくらいの長さかわかりませんので、立ち往生しているので、話してアドバイスを求めてください

私が試みた 1 つの方法はpaint.getTextSize()、0.59 のような比率で割ることでした。それは最初は解決策のように見えました。ただし、画像の比率は固定されておらず、フォントサイズも固定されていません。何か他のものが必要です。

問題を示す 2 つの写真を次に示します。

電話でのビットマップ:

ここに画像の説明を入力

保存された新しいビットマップ:

ここに画像の説明を入力

0 投票する
3 に答える
2134 参照

delphi - DrawText();のラップされたテキストの新しい高さを取得するにはどうすればよいですか?

コードサンプル

テキストを300pxの幅で折り返したいのですが、新しい高さを取得するにはどうすればよいですか?方法や解決策はありますか?

0 投票する
1 に答える
964 参照

android - drawTextOnPath を使用して描画された四角形の下のテキスト

長方形とそのすぐ上と下にいくつかのテキストがあるカスタム ビューを作成しようとしています。これまでのところ、drawTextOnPath メソッドを使用して、四角形の上にテキストを描画することに成功しています。ただし、長方形の下にあるものは、上下逆さまにペイントされます。長方形のすぐ下にテキストを描画する方法についてアドバイスをいただけますか?

前もって感謝します!

0 投票する
2 に答える
1915 参照

android - Android のテキストは非常にぼやけていて、不適切に描画されているように見えます

テキストを画面に描画すると、テキスト自体が切り落とされ、たとえば n が r のように見える特定の文字が表示されます。そして全体的に非常に読みにくい。以前にテキストを描いたことがありますが、見栄えが良かったです。なぜこれが起こっているのかについて、誰かが何らかの扇動を持っているかどうか疑問に思っていました. これがどのように見えるかのスクリーンショットへのリンクです。
ここに画像の説明を入力

0 投票する
0 に答える
1010 参照

graphics - GDIを使用してOTFフォントをレンダリングするTextRenderer.DrawText?

ビットマップイメージ上にテキストを描画しようとしていますが、調査を行ったところ、.NET /GDI+がOTFフォントをサポートしていないことがわかりました。GDIでOTFフォントをレンダリングするために使用できる場所をどこかで読みTextRenderer.DrawTextましたが、その方法がわからないようで、品質もGraphics.DrawString少しも比較できません。

  1. まず、VSでOTFフォントを使用することは可能ですか、それとも間違って読んだことがありますか?

  2. 次に、答えがTextRenderer.DrawTextの場合、OTFフォントをどのように使用しますか?クラスを使用する必要があるようですが、System.Drawing.Fontそれらがフォントをサポートしているとは思わないので、それが問題ですよね?

  3. GDI +を使用してフォントをTTFフォントのように明確にレンダリングするにはどうすればよいですか(Graphics.DrawString

  4. を使用すると、テキストの境界として(指定された幅、0の高さ)Graphics.DrawStringを使用でき、テキストは正しく折り返されました。を使用すると、使用する機能がRectangleFなくなり、高さ0を許可しないように見えるものだけが許可されますが、テキストは表示されます(つまり、テキストは長方形内にある必要があり、テキストの折り返しは機能しません)。私はそれを間違っていますか?TextRenderer.DrawTextRectangleFRectangle

どんな助けでも大歓迎です。これができない場合、OTFフォントを変換する方法、またはTTFバージョンでGothamフォントファミリーをオンラインで見つける方法はありますか?私は本当にこれらのフォントが必要です!

0 投票する
2 に答える
7304 参照

android - Android Canvas - すべての画面解像度で drawText を使用してテキストを同じ場所に配置する

異なる解像度の画面で同じ場所にテキストを配置できないようです。問題は、テキストがフローティングであることです。これは、レイアウト タイプのコントロールの一部ではありません。

画面サイズと比較して相対的な単位でテキストを配置しようとしています。たとえば、X 軸に 50%、Y 軸に 67.89% を配置します。それにもかかわらず、テキストは解像度の異なる画面では別の場所に表示されます。

そのため、特定の解像度の場所を概算するのに行き詰まっており、これは非常に速く厄介になります。

DPI / 画面サイズに関係なく、キャンバス上の同じ場所を特定するにはどうすればよいですか?

0 投票する
1 に答える
2494 参照

delphi - WindowsGDIのDelphiTextRect

Delphi TextRectGDIに類似したものはありますか?見てみましたDrawText, DrawTextExが、必要なものが見つかりませんでした。2つの色の部分に分割されたプログレスバーのパーセントテキストを描画する必要があります。たとえば、テキストの左側は黒、右側は白です。したがって、通常のようにすべてのプログレスバーにあります。

ここに画像の説明を入力してください

あなたの答えをありがとう!

0 投票する
2 に答える
1133 参照

c++-cli - エラーC2665、System :: Windows :: Forms :: TextRenderer::DrawTextの2つのオーバーロード間で解決できません

Windows::Forms::TextRenderer::DrawText(gT, numTo100, sfo, Rectangle(2, 2, 12, 12), SystemColors::ControlText);

エラーを出している

1>エラーC2665:'System :: Windows :: Forms :: TextRenderer :: DrawText':8つのオーバーロードのいずれもすべての引数タイプを変換できませんでした

1>は'voidSystem :: Windows :: Forms :: TextRenderer :: DrawText(System :: Drawing :: IDeviceContext ^、System :: String ^、System :: Drawing :: Font ^、System :: Drawing :: Point、System :: Drawing :: Color) '

1>または'voidSystem :: Windows :: Forms :: TextRenderer :: DrawText(System :: Drawing :: IDeviceContext ^、System :: String ^、System :: Drawing :: Font ^、System :: Drawing :: Rectangle 、System :: Drawing :: Color) '

行を失ってもエラーは発生しません。Pointで別の方法で試しましたが、他のプロジェクトでは正常に機能していました。どんなアイデアでもありがたいです、ありがとう。

編集 ここに関連する前の行、FWIWがあります。

0 投票する
1 に答える
4374 参照

delphi - DT_CALCRECT を使用した DrawText - 幅を変更せずに (大きな文字列を使用して) 四角形の高さを計算する方法はありますか?

描画時に Rect サイズ (テキストの高さ) を計算する必要がある文字列があります。私の実装では、フラグDrawTextW()付きの関数を使用しています。DT_WORDBREAK or DT_CALCRECT

私の文字列の例:

MSDN docsで確認できますが、そのDrawTextW()方法は次のように述べています。

最大の単語が四角形よりも広い場合、幅が拡張されます。テキストが四角形の幅より小さい場合は、幅が縮小されます。テキストが 1 行しかない場合、DrawText は四角形の右側を変更して、行の最後の文字を囲むようにします。

ただし、MSDNのドキュメントでは、DrawTextExW()メソッドはこれを述べていません。

そのため、メソッドを使用して高さを計算しようとしましたDrawTextExW()が、結果は関数と同じでDrawTextW()、テキストの最大行に合わせて四角形の幅を拡張します。

DT_WORDBREAKでは、とが指定されている大きな文字列 (スペースなし) を描画するときに、特定の (固定) 幅でテキスト四角形の高さを正しく計算するにはどうすればよいDT_CALCRECTですか?

編集:

補足として、Microsoft Excel がセル テキストを描画する方法を知っている人はいますか? このテキスト描画の API 呼び出しはありますか? これが私の最初の質問の由来でしたが、Excel での実装方法は、(スペースだけでなく) 任意の文字にテキストとワードブレーク/ワードラップを描画することです。