C# 在Windows窗体应用程序外部进行GDI渲染

C# 在Windows窗体应用程序外部进行GDI渲染,c#,image-processing,gdi+,gdi,cleartype,C#,Image Processing,Gdi+,Gdi,Cleartype,我有一个类可以将文本渲染成图像。在我尝试使用Calibri字体之前,它一直运行良好。Calibri渲染时不进行任何字体平滑。在我确定原因是Graphics.DrawString()使用GDI+之后,我需要使用GDI。方法是使用TextRenderer.DrawText()。但是,textrender位于System.Windows.Forms命名空间中,而我的不是Windows窗体应用程序 我应该在项目中引用System.Windows.Forms.dll吗?该类应被视为中级。它不在乎应用程序是

我有一个类可以将文本渲染成图像。在我尝试使用Calibri字体之前,它一直运行良好。Calibri渲染时不进行任何字体平滑。在我确定原因是
Graphics.DrawString()
使用
GDI+
之后,我需要使用
GDI
。方法是使用
TextRenderer.DrawText()
。但是,
textrender
位于
System.Windows.Forms
命名空间中,而我的不是Windows窗体应用程序

我应该在项目中引用System.Windows.Forms.dll吗?该类应被视为中级。它不在乎应用程序是基于web、windows窗体、WPF还是其他什么。输出是一个。在我的特殊情况下,我在网上使用它。我不喜欢从ASP.Net应用程序中引用
System.Windows.Forms
。在StackOverflow上,我们建议ASP.Net应用程序不应引用windows窗体DLL


那么,是否有一种通过GDI呈现文本的非windows窗体方式?或者这种情况是不从ASP.Net引用windows窗体dll规则的例外情况?

引用System.windows.forms.dll不是问题。它不会自发地尝试在web服务器上创建桌面窗口。在创建类的实例之前,不会发生任何事情,这在.NET中很常见。这些评论属于“不知道它是干什么的,看起来很丑,一定很糟糕”的类别。TextRenderer是DrawTextEx()的薄包装器。这就是我的想法。似乎
textdrenderer
属于
System.Graphics