【问题标题】:Automatically change font size for a stretched image in a picturebox自动更改图片框中拉伸图像的字体大小
【发布时间】:2018-09-17 13:17:51
【问题描述】:

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

当用户添加具有较小或较大尺寸的默认 480x360 像素的图像时,问题就开始了。在这种情况下,我在图像上写入字符串的默认字体大小将太大或太小。

有没有办法根据图像的宽度和高度来选择字体大小?我在程序中使用的图片大多是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;
    }

【问题讨论】:

  • 是的。只需按照我在下面说的操作即可。

标签: c# winforms drawing


【解决方案1】:

您可以禁止用户使用较小尺寸的图像...使用较大尺寸只需将其缩放到限制宽度。您还可以尝试设置黑色背景色,将图像居中,然后在底部放置一条白色条带作为宝丽来的文本...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多