У меня есть класс, который отображает текст в изображение. Он работал нормально, пока я не попытался использовать шрифт Calibri. Calibri отображается без какого-либо сглаживания шрифта. После некоторых research Я определил, что причина в том, что Graphics.DrawString()
использует GDI+
, а мне нужно использовать GDI
. Представленное решение заключается в использовании TextRenderer.DrawText()
вместо. Но TextRenderer
находится в пространстве имен System.Windows.Forms
, и мое приложение не является приложением Windows Forms.
Должен ли я просто ссылаться на System.Windows.Forms.dll в моем проекте? Этот класс следует считать средним уровнем. Неважно, является ли приложение веб-приложением, формами Windows, WPF или чем-то еще. Результатом является Image
а>. В моем конкретном случае я использую его в Интернете. И мне не нравится идея ссылаться на System.Windows.Forms
из приложения ASP.Net. Несколько комментарии и ответы на StackOverflow предполагают, что приложения ASP.Net не должны ссылаться на библиотеки DLL Windows Forms.
Итак, существует ли способ рендеринга текста без оконных форм через GDI? Или этот случай является исключением из правила не ссылаться на DLL-файлы Windows Forms из ASP.Net?
TextRenderer
принадлежитSystem.Graphics
. - person gilly3   schedule 07.02.2014