La génération d'un article de notation de l'image


Vous avez peut-être remarqué un couple de nouvelles icônes en haut à droite de chaque article? La première nouvelle icône montre 5 gris étoiles, ceux-ci se remplissent comme des étoiles d'or, comme les gens de la spécification d'un cote quand ils commentaire sur un article (la deuxième nouvelle icône). Je pensais que j' & #39 d partager le code source qui génère cette image.

La première chose à faire est d'avoir une balise dans votre code source qui ressemble à quelque chose comme ceci

Rating src= & #39 /ArticleRatingImage.aspx?cote=<%# DataBinder.Eval(Article, 'AverageRating') %> & #39
>

Plutôt que de faire des liens directs vers une URL de l'image fait référence à une page ASPX avec un seul paramètre, 'note=x', où 'x' est le AverageRating propriété de propriété de l'Article de la page courante.

la Génération de l'image

j'ai d'Abord créé une image qui se composait de 10 étoiles, les 5 premiers étaient gris, et les 5 derniers étaient de l'or.

Le Page_Load code de la ArticleRatingImage.page aspx qui ressemble à ça.

string fileName = Server.MapPath('/Images') '\\ArticleRating.gif'
Image starImage = Image.FromFile(nom de fichier)
int halfOriginalWidth = starImage.Largeur / 2
Bitmap ratingImage = new Bitmap(halfOriginalWidth, starImage.Hauteur)
carte Graphique ratingCanvas = Graphiques.FromImage(ratingImage)

//Dessine le fond gris étoiles
SolidBrush purpleBrush = new SolidBrush(de Couleur.Blanc)
ratingCanvas.FillRectangle(purpleBrush, 0, 0, ratingImage.Largeur, ratingImage.Hauteur)
ratingCanvas.DrawImage(starImage, 0, 0)

//calcul de la taille des étoiles d'or
double notation = 0
if (Request.QueryString['note'] != null)

{
cote = Convert.ToDouble(Requête.QueryString['note'])
if (index < 0)
cote = 0
else
if (cote > 5)
cote = 5
}
catch
{
}

int newWidth = (int)du Système.Les mathématiques.Round(halfOriginalWidth * cote / 5)
Rectangle sourceRect = new Rectangle(halfOriginalWidth, 0, newWidth, starImage.Hauteur)
Rectangle destRect = new Rectangle(0, 0, newWidth, starImage.Hauteur)

//Dessiner les étoiles d'or
ratingCanvas.DrawImage(starImage, destRect, sourceRect, GraphicsUnit.Pixel)

la Réponse.ContentType = 'image/gif'
ratingImage.Enregistrer(La Réponse.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)


Conclusion

Ce n'était pas très difficile en effet de réaliser, cependant, il ne semble pas possible de créer un GIF en .net qui a un arrière-plan transparent, au moins pas à l'aide de la norme-cadre.

Si quelqu'un sait comment créer un gif à l'exécution avec un fond transparent, j'aimerais savoir comment le faire.









La generation d'un article de notation de l'image


La generation d'un article de notation de l'image : Plusieurs milliers de conseils pour vous faciliter la vie.


Vous avez peut-etre remarque un couple de nouvelles icones en haut a droite de chaque article? La premiere nouvelle icone montre 5 gris etoiles, ceux-ci se remplissent comme des etoiles d'or, comme les gens de la specification d'un cote quand ils commentaire sur un article (la deuxieme nouvelle icone). Je pensais que j' & #39 d partager le code source qui genere cette image.

La premiere chose a faire est d'avoir une balise dans votre code source qui ressemble a quelque chose comme ceci

Rating src= & #39 /ArticleRatingImage.aspx?cote=<%# DataBinder.Eval(Article, 'AverageRating') %> & #39
>

Plutot que de faire des liens directs vers une URL de l'image fait reference a une page ASPX avec un seul parametre, 'note=x', ou 'x' est le AverageRating propriete de propriete de l'Article de la page courante.

la Generation de l'image

j'ai d'Abord cree une image qui se composait de 10 etoiles, les 5 premiers etaient gris, et les 5 derniers etaient de l'or.

Le Page_Load code de la ArticleRatingImage.page aspx qui ressemble a ça.

string fileName = Server.MapPath('/Images') '\\ArticleRating.gif'
Image starImage = Image.FromFile(nom de fichier)
int halfOriginalWidth = starImage.Largeur / 2
Bitmap ratingImage = new Bitmap(halfOriginalWidth, starImage.Hauteur)
carte Graphique ratingCanvas = Graphiques.FromImage(ratingImage)

//Dessine le fond gris etoiles
SolidBrush purpleBrush = new SolidBrush(de Couleur.Blanc)
ratingCanvas.FillRectangle(purpleBrush, 0, 0, ratingImage.Largeur, ratingImage.Hauteur)
ratingCanvas.DrawImage(starImage, 0, 0)

//calcul de la taille des etoiles d'or
double notation = 0
if (Request.QueryString['note'] != null)

{
cote = Convert.ToDouble(Requete.QueryString['note'])
if (index < 0)
cote = 0
else
if (cote > 5)
cote = 5
}
catch
{
}

int newWidth = (int)du Systeme.Les mathematiques.Round(halfOriginalWidth * cote / 5)
Rectangle sourceRect = new Rectangle(halfOriginalWidth, 0, newWidth, starImage.Hauteur)
Rectangle destRect = new Rectangle(0, 0, newWidth, starImage.Hauteur)

//Dessiner les etoiles d'or
ratingCanvas.DrawImage(starImage, destRect, sourceRect, GraphicsUnit.Pixel)

la Reponse.ContentType = 'image/gif'
ratingImage.Enregistrer(La Reponse.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)


Conclusion

Ce n'etait pas tres difficile en effet de realiser, cependant, il ne semble pas possible de creer un GIF en .net qui a un arriere-plan transparent, au moins pas a l'aide de la norme-cadre.

Si quelqu'un sait comment creer un gif a l'execution avec un fond transparent, j'aimerais savoir comment le faire.


La génération d'un article de notation de l'image

La génération d'un article de notation de l'image : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation