Genererer en artikkel fra image

Du har kanskje lagt merke til et par nye ikoner øverst til høyre i hver artikkel? Den første nye ikonet viser 5 grå stjerner, disse fyller opp som gullstjerner som folk som spesifiserer en vurdering når de kommenterer en artikkel (den andre nye ikonet). . Jeg tenkte jeg skulle dele kildekoden som genererer dette bildet
Det første du må gjøre er å ha en < img > tag i kildekoden som ser omtrent slik ut < img alt = " Rating " src = '/ArticleRatingImage.aspx rangering = <?% # DataBinder.Eval (Artikkel, " AverageRating ")% >' >
Snarere enn å linke direkte til et bilde URL dette < img > referanser en ASPX side med en enkelt parameter, " rangering = x ", hvor " x " er AverageRating tilhører en artikkel tilhører den aktuelle siden.
Generering bildet

Først jeg laget et bilde som besto av 10 stjerner, var de første fem grå, og de siste 5 var . gull
Page_Load koden til ArticleRatingImage.aspx siden ser ut som this.string filnavn = Server.MapPath (" /Images ") + " \\\\ ArticleRating.gif "; Bilde starImage = Image.FromFile (filnavn); int halfOriginalWidth = starImage.Width /2; Bitmap ratingImage = new Bitmap (halfOriginalWidth, starImage.Height); Grafikk ratingCanvas = Graphics.FromImage (ratingImage);
//Tegn de grå bakgrunns stjerner SolidBrush purpleBrush = new SolidBrush (Color.White); ratingCanvas.FillRectangle (purpleBrush, 0, 0, ratingImage.Width, ratingImage.Height); ratingCanvas.DrawImage (starImage, 0, 0);
//Beregn størrelsen på gullstjerner dobbel rangering = 0; if (Request.QueryString [" rating "]! = null) try {rangering = Convert.ToDouble (Request.QueryString [" rating "]); if (rating < 0) rangering = 0; else if (rating > 5) vurdering = 5; } Catch {}
int newWidth = (int) System.Math.Round (halfOriginalWidth * vurdering /5); Rektangel sourceRect = new rektangel (halfOriginalWidth, 0, newWidth, starImage.Height); Rektangel destRect = new rektangel (0, 0, newWidth, starImage.Height);
//Tegn gull stjerner ratingCanvas.DrawImage (starImage, destRect, sourceRect, GraphicsUnit.Pixel);
Response.ContentType = " image /gif "; ratingImage.Save (Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
Konklusjon

Dette var ikke en veldig vanskelig effekt å oppnå, men det ser ikke ut mulig å lage en GIF i .net som har en gjennomsiktig bakgrunn, i hvert fall ikke å bruke standard rammeverk .
Hvis noen vet hvordan man lager en gif under kjøring med en gjennomsiktig bakgrunn vil jeg gjerne høre hvordan du gjør det. Anmeldelser