私は System.Drawing を使用して、基本画像と拡大/縮小されたテキストを含む画像をオンザフライで生成しています。私の LOCALHOST 環境ではすべてがきれいですが、サーバー (Server 2008) に公開すると、アンチエイリアスの一部が失われ、画質が粗くなります。
これは、ローカル環境 (Windows 7) からコピーした例と、サーバー (Server 2008) からコピーした例です。
Windows 7:
Windows 2008:
ご覧のとおり、画像は同じサイズで、フォントも同じようにスケーリングされています。Server バージョンには、エッジを滑らかにするアンチエイリアスがないようです。コードの主な部分は次のとおりです。imgSign と grSign は、テキストがスケーリング/描画されるサイズ/背景色が設定された、確立された Image および Graphics オブジェクトです。
'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 にはない機能で回避しなければならないものはありますか? または、品質を向上させるために設定できるスイッチはありますか? それとも他の場所を探す必要がありますか?