Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FAIRE UN HISTORGRAMME (EN GIF) À LA VOLÉE EN ASP.NET


Information sur la source

Catégorie :Graphique Source .NET ( DotNet ) Niveau : Débutant Date de création : 25/04/2002 Date de mise à jour : 25/04/2002 17:03:30 Vu : 15 262

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Ce script vous montre comment générer une image GIF à la volée grâce à ASP.Net
Créez une page, mettez ceci dans le code (supprimez tout le html dans le fichier .aspx)
 

Source

  • ' A mettre en haut de votre page avant le "Public Class"
  • Imports System.Drawing
  • Imports System.Drawing.Imaging
  • ' Puis mettez ceci dans votre Page_Load
  • Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  • Dim i As Integer
  • Dim MaBitMap As New Bitmap(300, 250) ' On créé une image de 300x250
  • Dim MonObjGfx As Graphics
  • Dim MesValeurs(9) As Integer
  • Dim MesDescriptions(9) As String
  • MonObjGfx = Graphics.FromImage(MaBitMap)
  • ' On met un fond blanc
  • MonObjGfx.Clear(Color.White)
  • ' On trace un rectangle tout autour de notre image
  • MonObjGfx.DrawRectangle(Pens.Black, 0, 0, 299, 249)
  • ' On donne titre à notre graphique
  • MonObjGfx.DrawString("ASPFr.Com Rulez ! ;-)", New Font("Verdana", 16, FontStyle.Bold), Brushes.Black, New PointF(5, 5))
  • For i = 0 To 9
  • ' On rempli avec un nombre aléatoire entre 0 et 200
  • MesValeurs(i) = 200 * Rnd()
  • ' Pour cet exemple, on met la valeur en temps que légende
  • MesDescriptions(i) = MesValeurs(i)
  • ' On trace le rectangle de couleur Bleu
  • MonObjGfx.FillRectangle(New SolidBrush(Color.Blue), ((i + 1) * 25), 230 - MesValeurs(i), 10, MesValeurs(i))
  • ' Histoire de rendre un peu plus beau notre histogramme, on met un contour pour chaque barre
  • MonObjGfx.DrawRectangle(Pens.Black, ((i + 1) * 25), 230 - MesValeurs(i), 10, MesValeurs(i))
  • ' On affiche la légende en dessous de la barre tracée
  • MonObjGfx.DrawString(MesDescriptions(i).ToString, New Font("Arial", 8), Brushes.Black, ((i + 1) * 25), 235)
  • Next
  • ' On "balance" le graph au format Gif
  • MaBitMap.Save(Response.OutputStream, ImageFormat.Gif)
  • ' On peut très bien le sortir en Jpeg ou dans d'autres formats, voici la syntax :
  • ' MaBitMap.Save(Response.OutputStream, ImageFormat.Jpeg)
  • End Sub
' A mettre en haut de votre page avant le "Public Class"
Imports System.Drawing
Imports System.Drawing.Imaging

' Puis mettez ceci dans votre Page_Load
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim i As Integer
    Dim MaBitMap As New Bitmap(300, 250) ' On créé une image de 300x250
    Dim MonObjGfx As Graphics
    Dim MesValeurs(9) As Integer
    Dim MesDescriptions(9) As String

    MonObjGfx = Graphics.FromImage(MaBitMap)
    ' On met un fond blanc
    MonObjGfx.Clear(Color.White)
    ' On trace un rectangle tout autour de notre image
    MonObjGfx.DrawRectangle(Pens.Black, 0, 0, 299, 249)
    ' On donne titre à notre graphique
    MonObjGfx.DrawString("ASPFr.Com Rulez ! ;-)", New Font("Verdana", 16, FontStyle.Bold), Brushes.Black, New PointF(5, 5))

    For i = 0 To 9
        ' On rempli avec un nombre aléatoire entre 0 et 200
        MesValeurs(i) = 200 * Rnd()
        ' Pour cet exemple, on met la valeur en temps que légende
        MesDescriptions(i) = MesValeurs(i)
        ' On trace le rectangle de couleur Bleu
        MonObjGfx.FillRectangle(New SolidBrush(Color.Blue), ((i + 1) * 25), 230 - MesValeurs(i), 10, MesValeurs(i))
        ' Histoire de rendre un peu plus beau notre histogramme, on met un contour pour chaque barre
        MonObjGfx.DrawRectangle(Pens.Black, ((i + 1) * 25), 230 - MesValeurs(i), 10, MesValeurs(i))
        ' On affiche la légende en dessous de la barre tracée
        MonObjGfx.DrawString(MesDescriptions(i).ToString, New Font("Arial", 8), Brushes.Black, ((i + 1) * 25), 235)
    Next
    ' On "balance" le graph au format Gif
    MaBitMap.Save(Response.OutputStream, ImageFormat.Gif)

    ' On peut très bien le sortir en Jpeg ou dans d'autres formats, voici la syntax :
    ' MaBitMap.Save(Response.OutputStream, ImageFormat.Jpeg)
End Sub
 

Commentaires et avis

signaler à un administrateur
Commentaire de lexxx le 09/07/2002 09:40:44

Ca m'a l'air bien bien sympa comme script mais je ne sais pas comment faire pour insérer ce qui est en en-tête et qui doit figurer avant le public class.
Si quelqu'un peut m'aider.
Merci

signaler à un administrateur
Commentaire de DreaMs le 21/05/2003 17:15:52

Tout en haut de ton code :
<%@ Page Language="VB" %>
<%@ Import NameSpace="System.Drawing" %>
<%@ Import NameSpace="System.Drawing.Imaging" %>
<script runat="server">

signaler à un administrateur
Commentaire de vfi le 03/10/2003 14:25:18

C'est super sympas comme script.
J'aurais voulu savoir comment faire pour afficher le graph dans une sorte de popup?
En fait je voudrais dimensionner la fenetre de sortie (Response.OutputStream) au format de mon graphique.

Merci

signaler à un administrateur
Commentaire de ankou22 le 08/04/2005 10:50:01

Bonjour, j'ai fait tout comme il est dit ... mais je n'arrive pas faire fonctionner cette source.
J'ai une page blanche et vide...

Dans le code HTML, j'ai mis ca... c'est Bon ?

<%@ Page Language="vb" %>
<%@ Import NameSpace="System.Drawing" %>
<%@ Import NameSpace="System.Drawing.Imaging" %>
<script runat=server ></script>

il faut faire autre chose ?

Merci  

signaler à un administrateur
Commentaire de ABF le 02/06/2009 16:49:19

Bonjour,

Ce code est très simple et fonctionne sans soucis mais le problème est que si on l'inclu dans une master page, le code du gif (ou autre format) d'affiche comme nu response.writer en plus du graphe.

Est-il possible Nix de ne pas afficher le code de l'image ?

Merci

++

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.