C#-从变量字符串调整位图大小

莱昂内尔·雷诺(Lionel Renaux)

在我的应用程序中,我生成了一个Bitmap带有可变字符串的。

这是我的功能:

public void Image(String text, String font, int size)
{    
    Font font = new Font(font, size);
    float res = ((font.SizeInPoints * text.Length) / 72) * 96;

    using (Bitmap img = new Bitmap((int)res, font.Height))
    {
        Graphics g = Graphics.FromImage(img);

        SolidBrush drawBrush = new SolidBrush(Color.Black);

        g.DrawString(text, font, drawBrush, 1, 0);

        String directory = AppDomain.CurrentDomain.BaseDirectory + "Content\\Images\\Signature\\";
        string outputFileName = directory + "sign.png";

        img.Save(outputFileName, ImageFormat.Png);
    }
}

我希望图像的宽度与该位图中打印的字符串的宽度完全匹配。

如您所见,我尝试使用字体的磅值来计算宽度。
问题是每个打印的字母都有不同的宽度,因此在创建之前我无法得到尺寸Bitmap

另外,我什至不知道如何获取打印字符串的实际大小...

有人有主意吗?

布拉德利·乌夫纳(Bradley Uffner)

使用该Graphics.MeasureString功能。它采用字符串和字体,并以形式返回渲染文本的大小SizeF还有其他一些重载可以使用格式信息,而另一个重载可以SizeF表示包装的最大宽度。

可以在这里找到详细信息:https : //msdn.microsoft.com/zh-cn/library/6xe5hazb(v=vs.110).aspx

// Set up string.
string measureString = "Measure String";
Font stringFont = new Font("Arial", 16);

// Set maximum layout size.
SizeF layoutSize = new SizeF(100.0F, 200.0F);

// Set string format.
StringFormat newStringFormat = new StringFormat();
newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

// Measure string.
SizeF stringSize = new SizeF();
stringSize = e.Graphics.MeasureString(measureString, stringFont, layoutSize, newStringFormat);

// Draw rectangle representing size of string.
e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

// Draw string to screen.
e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可动态调整大小的C ++字符串数组的类

来自分类Dev

C#异步位图调整大小

来自分类Dev

C#字符串到变量

来自分类Dev

C#调整位图大小而无需更改Pixelformat

来自分类Dev

在C#中增加字符串的大小

来自分类Dev

C#中字符串数组的最大大小

来自分类Dev

按退格键调整字符串大小会引发错误C ++

来自分类Dev

C#字符串到变量名

来自分类Dev

将C#字符串分析为不同的变量

来自分类Dev

C#字符串到变量名

来自分类Dev

C#数字存储在字符串到变量的转换

来自分类Dev

在 C# 中传递 JSON 字符串中的变量

来自分类Dev

将字符串转换为图像(最喜欢任何格式的位图或ico)WPF C#

来自分类Dev

将字符串转换为图像(最喜欢任何格式的位图或ico)WPF C#

来自分类Dev

C# 将字符串变量设置为 SQL 字符串语句的参数

来自分类Dev

C字符串副本,数组大小

来自分类Dev

C# + Unity 字符串==字符串假

来自分类Dev

C#修改字符串

来自分类Dev

字符串表C#的列表

来自分类Dev

搜索字符串模式C#

来自分类常见问题

C#中损坏的字符串

来自分类Dev

从字符串C#构建表

来自分类Dev

解析字符串输入C#

来自分类Dev

字符串日期转换C#

来自分类Dev

Linq反向字符串C#

来自分类Dev

字符串操作C#

来自分类Dev

字符串如何分开,C#

来自分类Dev

MySQL连接字符串C#

来自分类Dev

C#分割字符串输入