1

我有一个图像以被拉伸到其原始大小的 3 倍的形式显示。
我想在图像上写文本,而不是拉伸文本。
这可能吗?如果可以,怎么做?

我试过(在刷新方法中):

    //On Form            //my Bitmap
    ImageDisplay.Image = IntensityBMP;
    Graphics g = Graphics.FromImage(ImageDisplay.Image);
    g.DrawString("MyText", new Font("Tahoma", 8), Brushes.White, etc);

and

    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.DrawString("MyText", new Font("Tahoma", 8), etc);
        base.OnPaint(e);
    }

两者都在预拉伸的图像上绘制文本,导致像素化、过大的文本。

4

1 回答 1

2

您需要在 PictureBox 呈现它的图像后绘制文本。

任何一个:

myForm.pictureBox1.Paint += PictureBoxPaintEvent;
private void PictureBoxPaintEvent(object sender, PaintEventArgs e)
{
   e.Graphics.DrawString("MyText", myFont, ....);
}

或者

创建一个PictureBox派生类并覆盖Paint

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);
    e.Graphics.DrawString("MyText", new Font("Tahoma", 8), etc);
}
于 2012-08-12T23:37:03.447 回答