这是执行该任务的代码,但它是针对WinForms的。将它应用到Web服务器应该不难:
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.windows.Forms
Public Class Form1
Sub Form1_Paint(ByVal sender As Object, _
ByVal e As PaintEventArgs) Handles MyBase.Paint
'g is the graphics context used to do the drawing.'
'gp is the path used to draw the circular gradient background'
'f is a generic font for drawing'
Using g = e.Graphics, gp As New GraphicsPath(), _
f As New Font(FontFamily.GenericSansSerif, 20, FontStyle.Bold)
'add the ellipse which will be used for the '
'circular gradient to the graphics path '
gp.AddEllipse(Me.ClientRectangle)
'then create a path gradient brush from the graphics path '
'created earlier to do the drawing on the background '
Using pgb As New PathGradientBrush(gp)
'set the center colour '
pgb.CenterColor = Color.White
'and then make all the colours around it a different colour '
pgb.SurroundColors = New Color() {Color.LightSteelBlue}
'fill a rectangle with the border colour of the gradient brush'
g.FillRectangle(Brushes.LightSteelBlue, Me.ClientRectangle)
'and then draw the gradient on top'
g.FillRectangle(pgb, Me.ClientRectangle)
'The secret to shadowed text is that the shadow is drawn first'
'and it is usually offset to the lower right of the main text '
'so we draw the shadow with a shade of grey '
g.DrawString("SOME TEXT", f, Brushes.Gray, 12, 12)
'after which we draw the text itself'
g.DrawString("SOME TEXT", f, Brushes.Black, 10, 10)
End Using
End Using
End Sub
End Class
上面的代码直接绘制到表单上。
如果要改为绘制图像,请按以下方式修改代码:
Function GetImage(....) As Image
Dim bmp As New Bitmap(200,200) 'you may use any size here'
Dim bmpRect As New Rectangle(Point.Empty, bmp.Size)
Using g = Graphics.FromImage(bmp), ...
.....
End Using
return bmp
End Sub
一定要用
bmpRect
而不是
Me.ClientSize
.
我希望这能奏效,因为这完全是Winforms。