- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 TextRenderer
(因为这有利于使用 Graphics.DrawString
)将一些文本绘制到 Bitmap
,但是它正在产生一些非常不良的影响。
示例代码
using (Bitmap buffer = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
using (Graphics graphics = Graphics.FromImage(buffer))
{
// Produces the result below
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
// Produces clean text, but I'd really like ClearType!
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
TextRenderer.DrawText(graphics, "Hello World", this.Font, this.ClientRectangle, Color.Black);
}
e.Graphics.DrawImageUnscaled(buffer, this.ClientRectangle);
}
结果
我不确定如何解决这个问题...求助!
我不想使用 Graphics.DrawString
,因为我想要正确的 GDI(相对于 GDI+)渲染。
注意:我刚刚意识到,我在这个问题上留下了一个漏洞。有些人指出,呈现 ClearType 文本在他们的机器上运行良好......
我正在尝试将文本呈现为透明 (Color.Transparent) 位图。如果我用纯色来做,一切都很好! (但我必须渲染成透明位图)。
最佳答案
在调用 DrawText() 时指定一个 BackColor:
TextRenderer.DrawText(graphics, "Hello World", this.Font, this.ClientRectangle, Color.Black, this.BackColor);
关于c# - 使用 TextRenderer 将文本绘制到位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838037/
我一直在研究自定义控件,但我遇到了一个问题,TextRenderer 的表现有点出乎意料。在我的 OnPaint 事件中,我将转换应用于 Graphics 对象以补偿滚动位置,如下所示: e.Grap
我正在尝试使用 TextRenderer 类测量给定特定字体的字符串的大小。尽管我尝试用 3 种不同的方法(Graphics.MeasureCharacterRanges、Graphics.Measu
我在绘制自定义控件时使用缩放和转换我的图形对象,以便应用缩放和滚动。我使用以下内容: Matrix mx = new Matrix(); mx.Scal
嗨,我正在使用 TextRenderer.MeasureText() 方法来测量给定字体的文本宽度。我使用 Arial Unicode MS 字体来测量宽度,这是一种包含所有语言字符的 Unicode
调用 TextRenderer.MeasureText 如下: TextRenderer.MeasureText(myControl.Text, myControl.Font); 并将结果与控件的
我有一个长字符串(约 10 万个字符)。我需要知道这个字符串的长度。我叫 Size s = TextRenderer.MeasureText(graphics, text, font); 但它返回宽度
由于在我的应用程序的某些地方缺少 Graphics 对象,我决定使用 TextRenderer 类。令人惊讶的是,它为测量文本增加了很多边距。例如: private void button1_Clic
我已经使用 TextRenderer 来测量字符串的长度,因此可以适本地调整控件的大小。 WPF 中是否有等效项,或者我可以简单地使用 TextRendered.MeasureString? 最佳答案
我正在尝试使用 TextRenderer(因为这有利于使用 Graphics.DrawString)将一些文本绘制到 Bitmap,但是它正在产生一些非常不良的影响。 示例代码 using (Bitm
System.Windows.Forms.TextRenderer.DrawText 方法呈现带或不带左右填充的格式化文本,具体取决于 flags 参数的值: TextFormatFlags.NoPa
我试图在我的 TextBox 子类中绘制 80 个字符的边距。这是我的代码: class FooTextBox : TextBox { ... void UpdateMarginPos
CE(.net 精简版)是否支持 TextRenderer? 最佳答案 没有。使用 Graphics.DrawString相反。 TextRenderer 是 GDI+ 缺陷的解决方法,CF 不使用
我想在给定一定宽度的可用 Canvas 的情况下测量文本的高度。我传递的文本很长,我知道会换行。为此,我调用以下方法: using System.Windows.Forms; ... string t
如果我给 TextRenderer.MeasureText 一些要测量的文本和要使用的宽度,它将返回显示该文本所需的高度。 private static int CalculateHeight(str
我使用以下代码在位图上绘制文本 GraphicsPath pth = new GraphicsPath(); var style = (int)myfont.Style; pth.AddString(
正如我发布的 here ,我能够在我的 WindowsForm 上显示一些特殊字体但是我无法将这种字体保存为图片。问题是 Graphic.DrawString() 无法显示所有或特殊字体。 Windo
我对这两种方法感到困惑。 我的理解是 Graphics.DrawString() 使用 GDI+ 并且是基于图形的实现,而 TextRenderer.DrawString() 使用 GDI 并允许大范
因为我已经尝试使用 Graphics.DrawString() 的平滑和渲染的每种组合来绘制字符串,所以我认为文本渲染器会更好地绘制我的字符串,但我认为是错误的. 它应该是这样的: 这是它的样子: 这
如果我使用 TextRenderer.DrawText() 并使用 OnPaintBackground 中提供的 Graphics 对象,我的文本看起来很完美。如果我创建自己的 Bitmap 并使用从
public static void DrawText(IDeviceContext dc, string text, Font font, Point pt, Color foreColor, Te
我是一名优秀的程序员,十分优秀!