<%@ Import NameSpace="system.drawing" %>
<%@ Import NameSpace="system.drawing.imaging" %>
<%@ Import NameSpace="system.drawing.drawing2d" %>

<script language="VB" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

Dim TXTstr As String = Trim(Request.QueryString("TXT"))
Dim SwatchImg As String = Trim(Request.QueryString("PAT"))
Dim BGCImg As String = Trim(Request.QueryString("BGC"))
Dim DropS As Boolean = CBool(Request.QueryString("DS"))
Dim GradImg As Boolean = CBool(Request.QueryString("GRAD"))

Dim BTmap As New _
system.drawing.bitmap(440, 50, pixelformat.Format32bppPArgb)

Dim StrForm As New system.drawing.stringformat
Dim GRP As graphics = graphics.fromimage(BTmap)
GRP.SmoothingMode = SmoothingMode.AntiAlias

Select Case BGCImg
 Case "lightgray"
 GRP.clear(color.fromArgb(192,192,192))
 Case "white"
 GRP.clear(color.white)
 Case "black"
 GRP.clear(color.black)
 Case "blue"
 GRP.clear(color.royalblue)
 Case "red"
 GRP.clear(color.indianred)
 Case "green"
 GRP.clear(color.darkgreen)
 Case "yellow"
 GRP.clear(color.yellow)
 Case "purple"
 GRP.clear(color.purple)
 Case Else
 GRP.clear(color.fromArgb(192,192,192))
End Select

If GradImg = True Then
 GRP.FillRectangle(New LinearGradientBrush(New point(0,0), _
 New point(BTmap.width,BTmap.height), _
 color.fromArgb(255,255,255,255), _
 color.fromArgb(100,100,100,100)),0,0,BTmap.width,BTmap.height)
 
End If

StrForm.alignment = stringalignment.center

Dim ImgE As System.Drawing.Image
Dim SWFilename As String = server.mappath(SwatchImg)
ImgE = System.Drawing.Image.FromFile(SWFilename)

dim TxtBrush as New TextureBrush(ImgE)

If DropS = True Then
 GRP.drawString(TXTstr, New _
 font("arial black",24,fontstyle.italic),Brushes.black, _
 225,5, StrForm)
End If

GRP.drawString(TXTstr, New _
font("arial black",24,fontstyle.italic),Brushes.white, 221,2, _
StrForm)
GRP.drawString(TXTstr, New _
font("arial black",24,fontstyle.italic),TxtBrush, 222,3, _
StrForm)


StrForm.alignment = stringalignment.center

response.contenttype="image/jpeg"

BTmap.save(response.outputstream, imageformat.jpeg)

BTmap.dispose()

End Sub
</script>