Я использую следующий код для рисования текста на растровом изображении:Можно ли определить точный размер шрифта при рисовании текста с помощью GDI +?
using (Font font = new Font("Arial", 10.0f, FontStyle.Bold, GraphicsUnit.Point))
{
//draw the text
graphics.DrawString("Some text", font, Brushes.White, rect, stringFormat);
}
Он работает хорошо. Здесь визуализируется текст:
Я хочу, чтобы сделать текст немного больше. Если установить 11 как размер шрифта, вот что я получаю:
Это слишком большой для того, что я хочу. Я попытался 10.25, 10.5 и такие, но это дает такой же результат, как 10.
Я также попытаться установить GraphicsUnit
к Pixel
, но он не ведет себя так же (нет возможности установить пользовательский размер шрифта).
Вот мой вопрос:
При рисовании текста с помощью GDI + (C#), есть Possiblity для "тонкой настройки" размер оказанной текста?
EDIT: более полный фрагмент кода (по запросу):
using (Bitmap bitmap = new Bitmap(width, height))
using (Graphics graphics = Graphics.FromImage(bitmap))
using (Font font = new Font("Arial", 10.0f, FontStyle.Bold, GraphicsUnit.Point))
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
Rectangle rect = new Rectangle(0, 0, width, height);
//method 1
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
graphics.DrawString("Some text", font, Brushes.White, rect, stringFormat);
//method 2
TextFormatFlags flags = TextFormatFlags.HorizontalCenter |
TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak;
TextRenderer.DrawText(graphics, "Some text", font, rect, Color.White, flags);
bitmap.Save(stream, ImageFormat.Png);
}
Try 'TextRenderingHint.ClearTypeGridFit' – leppie
Я попытался graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit, но он дает те же результаты – tigrou
Я подозреваю, ваш' StringFormat' неправильно. IIRC, я успешно использовал «FitBlackBox». Фактически я изменял ширину шрифта, чтобы быть точно целым числом, основанным на очень специфических настройках высоты. – leppie