Автоматически изменять размер шрифта для растянутого изображения в картинке - PullRequest
0 голосов
/ 27 марта 2012

У меня есть PictureBox, что его размер установлен на 480x360 пикселей.Я пишу текст, используя DrawString на изображении в картинке.Если размер изображения, которое пользователь выбирает для картинки, уже составляет 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;
    }

1 Ответ

0 голосов
/ 27 марта 2012

вы можете запретить пользователю использовать изображения меньшего размера ... с большим размером просто масштабируйте его до ограниченной ширины.Вы также можете попробовать такие вещи, как установка черного цвета фона, центрирование изображения, а затем размещение белой полосы внизу текста, как поляроид ...

...