我正在使用 System.Drawing 动态生成一些图像,其中包括基本图像以及一些拉伸/缩放的文本。在我的 LOCALHOST 环境中一切都很好而且很整洁,但是当我发布到我的服务器(Server 2008)时,我失去了一些抗锯齿并且图像质量变得粗糙。
这是从我的本地环境(Windows 7)复制的示例,然后从我的服务器(Server 2008)复制
Windows 7的:
视窗 2008:
如您所见,图像的大小相同,字体的缩放比例也相同。服务器版本似乎没有消除锯齿来平滑边缘。这是主要的代码:imgSign 和 grSign 是已建立的图像和图形对象,具有设定的大小/背景颜色,文本将被缩放/绘制到该对象上。
'Requested size of test
Dim textSize As SizeF = grSign.MeasureString(textString, font)
Dim intTextWidth As Integer = textSize.Width
Dim intTextHeight As Integer = textSize.Height
'Create image to hold text
Dim img As Drawing.Image = New Bitmap(intTextWidth, intTextHeight)
Dim gr As Graphics = Graphics.FromImage(img)
'Smoothing mode
gr.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
gr.TextRenderingHint = Text.TextRenderingHint.AntiAlias
'Scale Text
Dim sngScaleWidth As Single = imgSign.Width / intTextWidth
If sngScaleWidth > 1 Then sngScaleWidth = 1 'Don't scale down width if it doesn't need to be
Dim sngScaleHeight As Single = imgSign.Height / intTextHeight
grSign.ScaleTransform(sngScaleWidth, sngScaleHeight)
'Draw text
gr.DrawString(textString, font, Brushes.White, 0, 0)
是否有一些我必须解决的 Server 2008 上没有的功能,或者我可以设置一个开关来提高质量,还是我需要寻找其他地方?