Affichage image dans picturebox

Résolu
alex1496 Messages postés 10 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 1 mars 2007 - 26 févr. 2007 à 20:29
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 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

6 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
27 févr. 2007 à 10:00
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
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
26 févr. 2007 à 22:04
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
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
26 févr. 2007 à 22:09
Euh...
je dirais bien volontiers " peut être induit en erreur " (pour traduire get confused) le verbe confuser n'existant pas...
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
26 févr. 2007 à 22:18
certes

ShareVB
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alex1496 Messages postés 10 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 1 mars 2007
26 févr. 2007 à 23:12
Malheuresement, même en forcant l'extension en gif, bmp ou d'autre, l'image enregistrée est noire. Je ne comprends pas pourquoi.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
27 févr. 2007 à 08:44
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)
0
Rejoignez-nous