La generación de un artículo de clasificación de la imagen


Usted puede haber notado un par de nuevos iconos en la parte superior derecha de cada artículo? La primera en el nuevo icono de la muestra 5 gris estrellas, éstos se llenan como estrellas de oro como la gente se especifica una notación cuando comentan en un artículo (el segundo icono nuevo). Pensé que & #39 d compartir el código fuente que genera esta imagen.

La primera cosa a hacer es tener una etiqueta en el código fuente que se ve algo como esto

Rating src= & #39 /ArticleRatingImage.aspx?calificación=<%# DataBinder.Eval(Artículo, 'AverageRating') %> & #39
>

en Lugar de enlazar directamente a una URL de una imagen hace referencia a una página ASPX con un solo parámetro, 'rating=x', donde 'x' es el AverageRating propiedad de un Artículo de propiedad de la página actual.

la Generación de la imagen

en Primer lugar he creado una imagen que constaba de 10 estrellas, los 5 primeros eran de color gris, y los últimos 5 fueron de oro.

El Page_Load código de la ArticleRatingImage.página aspx se parece a esto.

string fileName = Server.MapPath('/Images') '//ArticleRating.gif'
Imagen starImage = Imagen.FromFile(nombre de archivo)
int halfOriginalWidth = starImage.Ancho / 2
mapa de bits ratingImage = new Bitmap(halfOriginalWidth, starImage.Altura)
Gráficos ratingCanvas = Gráficos.FromImage(ratingImage)

//Dibujar el gris de las estrellas de fondo
SolidBrush purpleBrush = new SolidBrush(de Color.Blanco)
ratingCanvas.FillRectangle(purpleBrush, 0, 0, ratingImage.Ancho, ratingImage.Altura)
ratingCanvas.DrawImage(starImage, 0, 0)

//Calcular el tamaño de las estrellas de oro
la doble calificación = 0
if (Request.QueryString['rating'] != null)
prueba
{
clasificación = Convert.ToDouble(Solicitud.QueryString['rating'])
si (notación < 0)
clasificación = 0
else
si (calificación > 5)
calificación = 5
}
captura
{
}

int newWidth = (int)del Sistema.De matemáticas.Ronda(halfOriginalWidth * clasificación / 5)
Rectángulo sourceRect = new Rectangle(halfOriginalWidth, 0, newWidth, starImage.Altura)
Rectángulo destRect = new Rectangle(0, 0, newWidth, starImage.Altura)

//Dibujar las estrellas de oro
ratingCanvas.DrawImage(starImage, destRect, sourceRect, GraphicsUnit.Pixel)

la Respuesta.ContentType = 'image/gif'
ratingImage.Guardar(Respuesta.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)


Conclusión

Este no fue un efecto difícil de lograr, sin embargo, no parece posible crear un GIF .net, que tiene un fondo transparente, al menos no con el estándar del marco.

Si alguien sabe cómo crear un gif en tiempo de ejecución con un fondo transparente me gustaría saber cómo hacerlo.









La generacion de un articulo de clasificacion de la imagen


La generacion de un articulo de clasificacion de la imagen : Multi-millones de consejos para hacer su vida mas facil.


Usted puede haber notado un par de nuevos iconos en la parte superior derecha de cada articulo? La primera en el nuevo icono de la muestra 5 gris estrellas, estos se llenan como estrellas de oro como la gente se especifica una notacion cuando comentan en un articulo (el segundo icono nuevo). Pense que & #39 d compartir el codigo fuente que genera esta imagen.

La primera cosa a hacer es tener una etiqueta en el codigo fuente que se ve algo como esto

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

en Lugar de enlazar directamente a una URL de una imagen hace referencia a una pagina ASPX con un solo parametro, 'rating=x', donde 'x' es el AverageRating propiedad de un Articulo de propiedad de la pagina actual.

la Generacion de la imagen

en Primer lugar he creado una imagen que constaba de 10 estrellas, los 5 primeros eran de color gris, y los ultimos 5 fueron de oro.

El Page_Load codigo de la ArticleRatingImage.pagina aspx se parece a esto.

string fileName = Server.MapPath('/Images') '//ArticleRating.gif'
Imagen starImage = Imagen.FromFile(nombre de archivo)
int halfOriginalWidth = starImage.Ancho / 2
mapa de bits ratingImage = new Bitmap(halfOriginalWidth, starImage.Altura)
Graficos ratingCanvas = Graficos.FromImage(ratingImage)

//Dibujar el gris de las estrellas de fondo
SolidBrush purpleBrush = new SolidBrush(de Color.Blanco)
ratingCanvas.FillRectangle(purpleBrush, 0, 0, ratingImage.Ancho, ratingImage.Altura)
ratingCanvas.DrawImage(starImage, 0, 0)

//Calcular el tamaño de las estrellas de oro
la doble calificacion = 0
if (Request.QueryString['rating'] != null)
prueba
{
clasificacion = Convert.ToDouble(Solicitud.QueryString['rating'])
si (notacion < 0)
clasificacion = 0
else
si (calificacion > 5)
calificacion = 5
}
captura
{
}

int newWidth = (int)del Sistema.De matematicas.Ronda(halfOriginalWidth * clasificacion / 5)
Rectangulo sourceRect = new Rectangle(halfOriginalWidth, 0, newWidth, starImage.Altura)
Rectangulo destRect = new Rectangle(0, 0, newWidth, starImage.Altura)

//Dibujar las estrellas de oro
ratingCanvas.DrawImage(starImage, destRect, sourceRect, GraphicsUnit.Pixel)

la Respuesta.ContentType = 'image/gif'
ratingImage.Guardar(Respuesta.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)


Conclusion

Este no fue un efecto dificil de lograr, sin embargo, no parece posible crear un GIF .net, que tiene un fondo transparente, al menos no con el estandar del marco.

Si alguien sabe como crear un gif en tiempo de ejecucion con un fondo transparente me gustaria saber como hacerlo.


La generación de un artículo de clasificación de la imagen

La generación de un artículo de clasificación de la imagen : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación