DrawString()似乎不起作用

时间:2013-08-24 19:39:01

标签: c#

 private static Bitmap[] renders = new Bitmap[characters];
    public static void initBitmaps()
    {
        fontWidth = TextRenderer.MeasureText("c", font).Width;
        fontHeight = TextRenderer.MeasureText("c", font).Height;
        for (int i=0; i<characters; i++)
        {
            renders[i] = new Bitmap(fontWidth, fontHeight);
            using (Graphics g = Graphics.FromImage(renders[i]))
            {
                g.DrawString(Convert.ToChar(i + 32).ToString(), font, new SolidBrush(Color.Black), new PointF(0, 0));
            }
        }
    }

执行此位代码后,所有位图都为空(RawData为空)。我做错了什么?

(有问题的字体是固定宽度的,因此尺寸应该不是问题)

1 个答案:

答案 0 :(得分:1)

opacitySeekBar.setVisibility(View.INVISIBLE); 工作正常且位图不是空的,你只是看不到文字,因为你在黑色背景上用黑色画笔绘画。

您需要初始化位图;使用DrawString。另请注意,您正在将g.Clear(Color.White)TextRenderer混合,这是个坏主意。有关详细信息,请参阅DrawString vs. TextRenderer

如果你尝试比例字体,你会对W和M的适合性感到失望,因为你只测量小写Graphics.DrawString的尺寸(大多数字体)小于a大写c