Как не быть ограниченным размером изображения с помощью обработчика изображений
-
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 который находится в системе.Рисование.Графика.