Как не быть ограниченным размером изображения с помощью обработчика изображений

StackOverflow https://stackoverflow.com/questions/1844696

  •  12-09-2019
  •  | 
  •  

Вопрос

Я преобразую текст в изображение.Некоторые фрагменты текста длиннее по длине, чем другие.
Как мне убедиться, что ни один текст не усечен?

Приведенный ниже код ограничивает мое растровое изображение 250, 30.

System.Drawing.Bitmap imgIn = new System.Drawing.Bitmap(250, 30);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(imgIn);
g.Clear(System.Drawing.Color.White);
    System.Drawing.Font font = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);

Я следовал этому примеру:Как преобразовать Адрес электронной почты или другую текстовую форму TextBox в изображение

Обновить

Я нашел эту статью, которая помогла выполнить мою задачу: Сгенерируйте изображение из текста с помощью C # ИЛИ Преобразуйте текст в изображение с помощью C#

После того, как я смог изменить размер изображения в соответствии с длиной текста, я обнаружил, что мне нужно ввести разрывы строк в тексте, иначе изображение доходило бы до Тимбукту, когда текст состоял из пары предложений.
Как мне ввести разрывы строк в длинные тексты?

Это было полезно?

Решение

Вы можете использовать TextRenderer.MeasureText чтобы получить размер текста в пикселях.

Size size = TextRenderer.MeasureText("text", Font("Arial",10));
System.Drawing.Bitmap imgIn = new System.Drawing.Bitmap(size.Width, size.Height);

Редактировать

Я нашел это статья о том, как написать HTTP-обработчик, который будет делать то, что вы хотите, он даже обертывает текст по размеру.

Другие советы

Попробуй вот это: http://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurestring.aspx который находится в системе.Рисование.Графика.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top