Affichage image dans picturebox [Résolu]

Messages postés
10
Date d'inscription
lundi 9 février 2004
Dernière intervention
1 mars 2007
- 26 févr. 2007 à 20:29 - Dernière réponse :
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 27 févr. 2007 à 10:00
3
Merci
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

Merci ShareVB 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de ShareVB
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 26 févr. 2007 à 22:04
0
Merci
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
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
- 26 févr. 2007 à 22:09
0
Merci
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
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 26 févr. 2007 à 22:18
0
Merci
certes

ShareVB
Commenter la réponse de ShareVB
Messages postés
10
Date d'inscription
lundi 9 février 2004
Dernière intervention
1 mars 2007
- 26 févr. 2007 à 23:12
0
Merci
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
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
- 27 févr. 2007 à 08:44
0
Merci
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.