Нужно создать из текста картинку (объект типа Image или Bitmap), на которой будет отрисован данный текст заданным шрифтом (и больше ничего).
Так же нужно сделать перенос слов, чтобы текст вмещался в нужную мне ширину.
UPD:
Извините, но я не понимаю, чего вам не хватает. Я задал конкретный вопрос. Я не понимаю, что в нем не понятно. Есть какой то текст типа string, мне нужно создать из него изображение типа Image или Bitmap, причем нужно, чтобы слова переносились. То есть чтобы текст влезал в заданную ширину.
Ответ
Есть несколько способов для вывода текста на картинку.
Метод Graphics.DrawString. Требует подключения библиотеки System.Drawing.dll
string text = "Какой-нибудь весьма длинный текст, не влезающий в картинку по длине, поэтому требующий переноса";
Rectangle rect = new Rectangle(0, 0, 200, 100);
// Создаём битмап с нужными размерами и форматом пикселей.
Bitmap bmp1 = new Bitmap(200, 100, PixelFormat.Format24bppRgb);
using (Graphics g = Graphics.FromImage(bmp1))
using (Font font = new Font("Arial", 10))
{
// Заливаем фон нужным цветом.
g.FillRectangle(Brushes.White, rect);
// Выводим текст.
g.DrawString(
text,
font,
Brushes.Black, // цвет текста
rect, // текст будет вписан в указанный прямоугольник
StringFormat.GenericTypographic
);
}
Метод TextRenderer.DrawText. Требует подключения библиотеки System.Windows.Forms.dll
Bitmap bmp2 = new Bitmap(200, 100, PixelFormat.Format24bppRgb);
using (Graphics g = Graphics.FromImage(bmp2))
using (Font font = new Font("Arial", 10))
{
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
// Заливаем фон нужным цветом.
g.FillRectangle(Brushes.White, rect);
// Выводим текст.
TextRenderer.DrawText(
g,
text,
font,
rect,
Color.Black, // цвет текста
TextFormatFlags.WordBreak // включаем перенос слов
);
}
У обоих методов большое количество параметров, позволяющих гибко настраивать вывод текста.
Комментариев нет:
Отправить комментарий