Как не ограничиваться размером изображения с помощью Image Handler - PullRequest
0 голосов
/ 04 декабря 2009

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

Код ниже ограничивает мое растровое изображение 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 в изображение

UPDATE

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

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

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

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

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

EDIT

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

0 голосов
/ 04 декабря 2009

Попробуйте это: http://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurestring.aspx, который находится на System.Drawing.Graphics.

...