How can you make a proper dropshadow for an image? I just used a gradientbrush and filled another rectangle but that doesn't look nearly as good.

VB Code:
  1. Public Function DropShadow(ByVal img As Image, ByVal OffSet As Integer) As Bitmap
  2.         Dim g As Graphics
  3.         Dim bmp As New Bitmap(CType(img.Width, Integer), CType(img.Height, Integer))
  4.         g = Graphics.FromImage(bmp)
  5.         Dim gb As New Drawing2D.LinearGradientBrush(New RectangleF(OffSet, OffSet, img.Width, img.Height), Color.Black, Color.White, Drawing2D.LinearGradientMode.ForwardDiagonal)
  6.         g.FillRectangle(gb, New Rectangle(OffSet, OffSet, img.Width, img.Height))
  7.         g.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height), 0, 0, img.Width + OffSet, img.Height + OffSet, GraphicsUnit.Pixel)
  8.         Return bmp
  9.     End Function