问题标签 [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 保存位图画布但需要计算文本大小

我有一个画布,我可以在上面画文字。
(这是相当先进的我想希望你能关注我)

请参阅下面的附图。

功能是我可以点击屏幕来更改文本大小。
点击左侧屏幕 = 较小的字体。
点击右屏幕 = 更大的字体。
然后我还可以移动屏幕上的文本。

当 textsize 没问题并且我已将文本移动到我想要的位置时,
然后我想将其保存回原始位图。

options.inSampleSize = 4;用来最初加载Bitmap

具有位图的 ImageView 当然比原始图像小。
需要某种计算。这往往很难做到。

我有options.inSampleSize = 4位图比率。
它是 0.59,0.69 取决于横向或纵向。

我正在玩这个以某种方式更改新位图setTextSize
,使其看起来与 ImageView 较小的位图相同。

我能在这里做什么?
我有一种感觉,因为人们永远不知道图像的大小。
我必须以某种方式将加载的位图比率缩放/限制为固定比率。

然后我需要使用百分比或其他东西将文本位置转移到更大的图像。
当涉及到初始(图片上的红色小球)位置时,我可以做到这一点。因此,文本的起点。

但我不知道文字被卡住了多久,所以说出来并征求意见

我尝试的一种方法是除以paint.getTextSize()0.59 之类的比率。起初这看起来像是一个解决方案。但是图像比例不固定,字体大小不固定,需要其他东西。

这是显示问题的两张图片。

在手机位图上:

在此处输入图像描述

保存的新位图:

在此处输入图像描述

0 投票
3 回答
2134 浏览

delphi - How can I get the new height of a wrapedtext of DrawText();?

code sample

I want to wrap the text in 300px width but how can I get the new Height? Is there a way or any solution?

0 投票
0 回答
151 浏览

android - 在 onDraw() 中将字符串除以 2 个自定义 Rect 形状;

我在将我的 String 对象划分为 2 个 Rect 形状时遇到问题。

首先,我不知道如何将 canvas.drawtext 设置为指定区域。就像你使用 textview 一样。

其次,我只能在 Rect 形状的宽度处计算/破坏我的字符串。这意味着我只能画 1 条线而不是填充框...我可以取框高度并将其除以 textsize 以计算适合的行数,但是我必须逐行绘制?

当然必须有这方面的例子,但我似乎找不到它们。

有点情况:

看法 :

[xxxxx]---------

[xxxxx]---------

----------[xxxxx]

----------[xxxxx]

我想要一个很长的字符串被分割并放置在 [xxx] 框中

塔。

0 投票
1 回答
964 浏览

android - 使用 drawTextOnPath 绘制的矩形下方的文本

我正在尝试创建一个自定义视图,它有一个矩形,以及它的正上方和正下方的一些文本。到目前为止,我成功地使用 drawTextOnPath 方法在绘制的矩形上方获取文本。但是,应该在矩形下方的那个被颠倒了。我可以就如何在矩形正下方绘制文本获得一些建议吗?

提前致谢!

0 投票
2 回答
1915 浏览

android - Android 的文字看起来真的很模糊而且画得不好

当将文本绘制到屏幕上时,文本本身会被截断,某些字符(例如 n 看起来像 r)。总体上很难阅读。我以前画过文字,看起来还不错。想知道是否有人对为什么会发生这种情况有任何煽动。这是一个链接到它的外观的屏幕截图。
在此处输入图像描述

0 投票
0 回答
1010 浏览

graphics - TextRenderer.DrawText 使用 GDI 渲染 OTF 字体?

我试图在位图图像上绘制文本,我做了一些研究,发现 .NET/GDI+ 不支持 OTF 字体。我在某处读到了可以使用TextRenderer.DrawTextGDI 渲染 OTF 字体的文章,但我似乎无法弄清楚如何使用,质量也无法与之相比Graphics.DrawString

  1. 首先,是否可以在 VS 中使用 OTF 字体或者我读错了什么?

  2. 第二,如果答案是TextRenderer.DrawText,我该如何使用OTF字体?看起来我必须使用System.Drawing.Font该类,但我认为那些不支持字体,这就是问题所在,对吗?

  3. 如何让字体像使用 GDI+ ( Graphics.DrawString)的 TTF 字体一样清晰呈现

  4. 使用Graphics.DrawString我能够使用RectangleF(指定宽度,0 高度)作为我的文本的边界,并且文本正确包装。使用TextRenderer.DrawText,使用的能力RectangleF消失了,只允许Rectangle似乎不允许 0 高度,同时仍然允许显示文本(即文本必须在矩形内,并且文本换行不起作用)。我做错了吗?

任何帮助将不胜感激。如果无法做到这一点,有没有办法转换OTF字体,或者在TTF版本中在线找到Gotham字体系列?我真的需要这些字体!

0 投票
2 回答
7304 浏览

android - Android Canvas - 将带有drawText的文本定位在所有屏幕分辨率上的相同位置

我似乎无法在不同分辨率的屏幕上将文本定位在相同的位置。问题是文本是浮动的,它不是任何布局类型控件的一部分。

我尝试将文本放置在与屏幕尺寸相比的相对单位中。例如,我在 X 轴上设置为 50%,在 Y 轴上设置为 67.89%。尽管如此,文本出现在不同分辨率屏幕上的不同位置。

所以我被困在某些分辨率的近似位置上,这很快就会变得一团糟。

尽管 DPI / 屏幕尺寸不同,如何在画布上确定一个相同位置的位置?

0 投票
1 回答
2494 浏览

delphi - Windows GDI 中的 Delphi TextRect

Delphi TextRectGDI中有类似物吗?我看了看DrawText, DrawTextEx,但没有找到我需要的东西。我需要绘制一个进度条的百分比文本,它分为两个颜色部分,例如文本的左侧部分是黑色,右侧是白色。所以通常在所有进度条中。

在此处输入图像描述

感谢您的回答!

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>error C2665: 'System::Windows::Forms::TextRenderer::DrawText' : 8 个重载都不能转换所有参数类型

1> 可能是 'void System::Windows::Forms::TextRenderer::DrawText(System::Drawing::IDeviceContext ^,System::String ^,System::Drawing::Font ^,System::Drawing::点,系统::绘图::颜色)'

1> 或 'void System::Windows::Forms::TextRenderer::DrawText(System::Drawing::IDeviceContext ^,System::String ^,System::Drawing::Font ^,System::Drawing::Rectangle ,系统::绘图::颜色)'

如果我丢失了这条线,我不会出错。我已经用 Point 尝试了另一种方式,它在我的另一个项目中运行良好。任何想法将不胜感激,谢谢。

编辑 这里是相关的前几行,FWIW ..

0 投票
1 回答
4374 浏览

delphi - 带有 DT_CALCRECT 的 DrawText - 有没有办法在不修改宽度的情况下计算矩形的高度(使用大字符串)?

我有一个字符串,我需要在绘图时计算矩形大小(文本高度)。我的实现使用DrawTextW()带有DT_WORDBREAK or DT_CALCRECT标志的函数。

我的字符串的一个例子:

我可以在MSDN docs中看到,该DrawTextW()方法指出:

如果最大的单词比矩形宽,则宽度会扩大。如果文本小于矩形的宽度,则宽度会减小。如果只有一行文本,DrawText 会修改矩形的右侧,使其与该行中的最后一个字符绑定。

但是在 MSDN 文档中,则DrawTextExW()方法没有说明这一点。

所以我尝试使用该DrawTextExW()方法计算高度,但是结果与DrawTextW()函数相同,它扩展了矩形的宽度以适应最大的文本行。

DT_WORDBREAK那么,当在哪里和指定位置绘制大字符串(没有空格)时,如何正确计算具有给定(固定)宽度的文本矩形的高度DT_CALCRECT

编辑:

附带说明一下,有人知道 Microsoft Excel 如何绘制单元格文本吗?此文本绘图是否有 API 调用?这是我最初的问题的来源,但是它在 Excel 中实现的方式是在任何字符(不仅仅是空格)上绘制文本和分词/自动换行。