** 应先建立一张前5星为灰色和后5星为金黄色的图片.

Index.aspx

 

<Form runat="server">
<img alt="Rating" src='ArticleRatingImage_VB.aspx?rating=3'>
</Form>

 

ArticleRatingImage_VB.aspx

 

<%@import namespace="System.Drawing" %>
<%@ Page Language="VB" Debug="true" %>
<Script runat="server">
Private Sub page_load(ByVal obj As ObjectByVal e As EventArgs) 
 
Dim fileName As String = Server.MapPath("./Images"+ "\10star_6.gif" 
 
Dim starImage As System.Drawing.Image = System.Drawing.Image.FromFile(fileName)  
 
Dim halfOriginalWidth As Integer = starImage.Width / 2   
 
Dim ratingImage As Bitmap = New Bitmap(halfOriginalWidth, starImage.Height) 
 
Dim ratingCanvas As Graphics = Graphics.FromImage(ratingImage) 
 
Dim purpleBrush As SolidBrush = New SolidBrush(Color.White) 
 ratingCanvas.FillRectangle(purpleBrush, 
00, ratingImage.Width, ratingImage.Height) 
 ratingCanvas.DrawImage(starImage, 
00
 
Dim rating As Double = 0 
 
If Not (Request.QueryString("rating"Is NothingThen 
   
Try 
     rating 
= Convert.ToDouble(Request.QueryString("rating")) 
     
If rating < 0 Then 
       rating 
= 0 
     
Else 
       
If rating > 5 Then 
         rating 
= 5 
       
End If 
     
End If 
   
Catch 
   
End Try 
 
End If 
 
Dim newWidth As Integer = CType(System.Math.Round(halfOriginalWidth * rating / 5), Integer
 
Dim sourceRect As Rectangle = New Rectangle(halfOriginalWidth, 0, newWidth, starImage.Height) 
 
Dim destRect As Rectangle = New Rectangle(00, newWidth, starImage.Height) 
 ratingCanvas.DrawImage(starImage, destRect, sourceRect, GraphicsUnit.Pixel) 
 Response.ContentType 
= "image/gif" 
 ratingImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif) 
End Sub

</Script>