** 应先建立一张前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 Object, ByVal 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, 0, 0, ratingImage.Width, ratingImage.Height)
ratingCanvas.DrawImage(starImage, 0, 0)
Dim rating As Double = 0
If Not (Request.QueryString("rating") Is Nothing) Then
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(0, 0, 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>


浙公网安备 33010602011771号