gpt4 book ai didi

.net - 在矩形内填充文本

转载 作者:行者123 更新时间:2023-12-04 00:59:22 27 4
gpt4 key购买 nike

我正在使用 GDI+ 在 Graphics 对象上绘制一个字符串。

我希望字符串适合预定义的矩形(不破坏任何线条)

除了在循环中使用 TextRenderer.MeasureString() 直到返回所需的大小之外,还有其他方法吗?

类似的东西:

DrawScaledString(Graphics g, string myString, Rectangle rect)

最佳答案

您可以使用 ScaleTransform

string testString = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Suspendisse et nisl adipiscing nisl adipiscing ultricies in ac lacus.
Vivamus malesuada eros at est egestas varius tincidunt libero porttitor.
Pellentesque sollicitudin egestas augue, ac commodo felis ultricies sit amet.";

Bitmap bmp = new Bitmap(300, 300);
using (var graphics = Graphics.FromImage(bmp))
{
graphics.FillRectangle(Brushes.White, graphics.ClipBounds);
var stringSize = graphics.MeasureString(testString, this.Font);
var scale = bmp.Width / stringSize.Width;
if (scale < 1)
{
graphics.ScaleTransform(scale, scale);
}
graphics.DrawString(testString, this.Font, Brushes.Black, new PointF());
}
bmp.Save("lorem.png", System.Drawing.Imaging.ImageFormat.Png);
但是您可能会得到一些别名效果。
alt text
编辑:
但是,如果您想更改字体大小,我想您可以使用 scale 更改字体大小。在上面的代码中,而不是使用比例变换。尝试两者并比较结果的质量。

关于.net - 在矩形内填充文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com