我正在尝试将文本比例添加到彩色图像。agcScale.jpg 图像(下图)是顶部和底部的 2 个 winform 标签和左侧和右侧的 2 个 winform 图片框。完全相同的代码用于生成左右图片框中的字符串,唯一的区别是pictureBoxAgcVscale 只包含字符串。为什么pictureBoxAgc 中的DrawString 看起来不错,但pictureBoxAgcVscale 中的DrawString 看起来那么糟糕?我可能可以通过为每个像素执行 bmp.SetPixel 来修复 pictureBoxAgcVscale,但这似乎是解决此问题的错误方法。
private void DisplayAgcVscale(double min, double max)
{
var bmp = new Bitmap(pictureBoxAgcVscale.Width, pictureBoxAgcVscale.Height);
var c = (max - min) / bmp.Height;
using (var g = Graphics.FromImage(bmp))
{
var font = new Font("Microsoft Sans Serif", 8.25F);
var y1 = bmp.Height / 10;
for (var y = y1; y < bmp.Height; y += y1)
{
var agc = y * c + min;
var text = agc.ToString("#0.000V");
var h = bmp.Height - y - font.Height / 2;
g.DrawString(text, font, Brushes.Black, 0, h);
}
}
pictureBoxAgcVscale.Image = bmp;
}