alex1496
Messages postés10Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 1 mars 2007
-
26 févr. 2007 à 20:29
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 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
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()
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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))
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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)