Страницы

Поиск по вопросам

понедельник, 17 июня 2019 г.

Как создать картинку из текста?

Нужно создать из текста картинку (объект типа 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 // включаем перенос слов ); }
У обоих методов большое количество параметров, позволяющих гибко настраивать вывод текста.

Комментариев нет:

Отправить комментарий