I’m trying to return a transparent GIF from an .aspx page for display within a web page. I am trying to get the image to have transparency, but I just keep getting Black being where the image should be Transparent.
Does anyone know what I’m doing wrong?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load '' Change the response headers to output a GIF image. Response.Clear() Response.ContentType = 'image/gif' Dim width = 110 Dim height = width '' Create a new 32-bit bitmap image Dim b = New Bitmap(width, height) '' Create Grahpics object for drawing Dim g = Graphics.FromImage(b) Dim rect = New Rectangle(0, 0, width - 1, height - 1) '' Fill in with Transparent Dim tbrush = New System.Drawing.SolidBrush(Color.Transparent) g.FillRectangle(tbrush, rect) '' Draw Circle Border Dim bPen = Pens.Red g.DrawPie(bPen, rect, 0, 365) '' Fill in Circle Dim cbrush = New SolidBrush(Color.LightBlue) g.FillPie(cbrush, rect, 0, 365) '' Clean up g.Flush() g.Dispose() '' Make Transparent b.MakeTransparent() b.Save(Response.OutputStream, Imaging.ImageFormat.Gif) Response.Flush() Response.End() End Sub
Unfortunately, there is no easy way to create a transparent Gif using a Bitmap object. (See this KB article)
You can alternatively use the PNG format that supports transparency with the code you are using.