C# 自动更改picturebox中拉伸图像的字体大小

C# 自动更改picturebox中拉伸图像的字体大小,c#,winforms,drawing,C#,Winforms,Drawing,我有一个PictureBox,它的大小固定为480x360像素。我用DrawString在picturebox的图像上写了一些文字。如果用户为picturebox选择的图像的大小已经是480x360,则没有问题 当用户添加默认大小为480x360像素的较小或变大的图像时,就会出现问题。在这种情况下,我在图像上写入字符串的默认fonr大小要么太大,要么太小 有没有办法根据图像的宽度和高度选择字体大小?我在程序中使用的图片大多是4:3的比例 目前,我正在使用下面的代码…它在某种程度上是可行的,但这不

我有一个
PictureBox
,它的大小固定为480x360像素。我用
DrawString
在picturebox的图像上写了一些文字。如果用户为picturebox选择的图像的大小已经是480x360,则没有问题

当用户添加默认大小为480x360像素的较小或变大的图像时,就会出现问题。在这种情况下,我在图像上写入字符串的默认fonr大小要么太大,要么太小

有没有办法根据图像的宽度和高度选择字体大小?我在程序中使用的图片大多是4:3的比例

目前,我正在使用下面的代码…它在某种程度上是可行的,但这不是一个好方法。什么是更聪明的方法

        private int GetProperFontSize()
    {
        var width = _bitmap.Width;

        if(width > 480 && width <= 680)
        {
            return 20;
        }

        if (width > 680 && width <= 800)
        {
            return 24;
        }

        if (width > 800 && width <= 1024)
        {
            return 32;
        }

        if (width > 1024 && width <= 1600)
        {
            return 44;
        }

        if (width > 1600 && width <= 2048)
        {
            return 50;
        }

        if (width > 2048 && width <= 2560)
        {
            return 66;
        }

        if (width > 2560 && width <= 6000)
        {
            return 80;
        }

        return 16;
    }
private int GetProperFontSize()
{
var width=_bitmap.width;

如果(宽度>480&&width 680&&width 800&&width 1024&&width 1600&&width 2048&&width 2560&&width您可以禁止用户使用较小尺寸的图像…较大尺寸的图像只需将其缩放到受限制的宽度。您还可以尝试设置黑色背景色、将图像居中,然后放置whi文本底部的te波段就像宝丽来一样…

是的。只需按照我下面所说的做即可。