Affichage image dans picturebox [Résolu]

alex1496 10 Messages postés lundi 9 février 2004Date d'inscription 1 mars 2007 Dernière intervention - 26 févr. 2007 à 20:29 - Dernière réponse : ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention
- 27 févr. 2007 à 10:00
Je rencontre des difficulté à afficher une image dans une picturebox.

En fait, mon programme réalise des calculs et dessine une image. Cette image doit ensuite être recupérée pour être afficher dans une note de calculs au format html.

J'ai plusieurs souci s:

1°)
J'ai réussi à afficher mon image dans ma picturebox de mon programme. L'enregistre sur le disque dur mais pas d'affichage dans la note de calculs HTML.

2°)
J'essaye de "forcer" le format de l'image. Là, problème l'image est toute noir et l'affichage dans le HTML est bon. Le problème ne semble donc pas venir de ma partie HTML.

3°)

J'essaye d'afficher une image que j'ai sur mon HDD. L'affichage est ok. J'y comprends rien

Ma conclusion :
Je ne dois pas enregistrer mon image comme il faut sur mon disque : problème d'extension je pense. De plus, mon programme plante quand je tente faire un nouveau calcul. En effet, le programme doit encore servir de l'image.

Merci de votre aide.

Extrait de code
<hr size= "2" width="100%" />Public file_img_p As String = My.Application.Info.DirectoryPath & "\temp\poteau.gif"
<hr size="2" width="100%" />Private Sub menu_Calculer(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles barre_calculer.Click, mnu_calculer.Click

... Code ...

'--- Affichage dessin ---
        'Image de support
        Dim img As Bitmap = New Bitmap(pic.Width, pic.Height)
        'Paramètres de transformation
        Dim ajust As ajustage = Ajuste_section(section, pic)
        'Trace
        Call Trace_section(section, img, ajust)
        Call Trace_section(section_Br, img, ajust)
        'Affichage sur la picturebox
       
        'pic.Image = img
        'pic.Image.Save(file_img_p)

        'pic.Image = Nothing

        img.Save(file_img_p) ', System.Drawing.Imaging.ImageFormat.Gif)
        pic.Image = Image.FromFile(file_img_p)

        img.Dispose()

        '--- Note de calculs ---
        Call ndc_poteau(p, geom_p, soll_p, meca_p, arm_p)
        Call menu_ndc(sender, e)

    End Sub
<hr size="2" width="100%" />Public Sub Trace_section(ByRef tableau() As PointF, ByVal img As Bitmap, ByVal ajust As ajustage)
        'Trace une image à partir d'un tableau

        Dim tableau_trace() As PointF
        tableau_trace = tableau.Clone

        'Tableau affichage
        For i As Integer = 0 To tableau_trace.GetUpperBound(0)
            tableau_trace(i).X = tableau(i).X * ajust.echelle.dx + ajust.vecteur.dx
            tableau_trace(i).Y = tableau(i).Y * ajust.echelle.dy + ajust.vecteur.dy
        Next i

        'Créer une image en fonction de la picturebox
        Dim graph As Graphics = Graphics.FromImage(img)
        'Dessin
        graph.DrawPolygon(Pens.Black, tableau_trace)
        graph.Dispose()

    End Sub
<hr size="2" width="100%" />Extrait html
Afficher la suite 

Votre réponse

6 réponses

ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 27 févr. 2007 à 10:00
+3
Utile
salut,

ah oui, j'avais oublié : le fond de la bitmap est noir par défaut, donc il faut le remplir avant de dessiner dessus :
            graph.FillRectangle(Brushes.White,new Rectangle(0,0,Width,Height))

ShareVB
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ShareVB
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 26 févr. 2007 à 22:04
0
Utile
salut,

à mon avis, il faudrait préciser le format d'enregistrement :
img.Save(file_img_p, System.Drawing.Imaging.ImageFormat.Gif)

parce que par défaut, ca doit être BMP et si tu mets .gif comme extension, le navigateur peut être confusé...

ShareVB
Commenter la réponse de ShareVB
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 26 févr. 2007 à 22:09
0
Utile
Euh...
je dirais bien volontiers " peut être induit en erreur " (pour traduire get confused) le verbe confuser n'existant pas...
Commenter la réponse de jmfmarques
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 26 févr. 2007 à 22:18
0
Utile
certes

ShareVB
Commenter la réponse de ShareVB
alex1496 10 Messages postés lundi 9 février 2004Date d'inscription 1 mars 2007 Dernière intervention - 26 févr. 2007 à 23:12
0
Utile
Malheuresement, même en forcant l'extension en gif, bmp ou d'autre, l'image enregistrée est noire. Je ne comprends pas pourquoi.
Commenter la réponse de alex1496
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 27 févr. 2007 à 08:44
0
Utile
Je ne connais pas VB.Net...
Je vois toutefois que le problème ne se pose que lorsque tu dessines et pas lorsque tu charges une image déjà existante.

Si c'est comme avec VB6, il te faut rendre ton dessin persistant.
Avec VB6 : Propriété autoredraw de la PictureBox à True
et (après dessin): Picture1.picture = Picture1.image)
Commenter la réponse de jmfmarques

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.