cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
17 mai 2007 à 14:48
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
18 mai 2007 à 18:40
bonjour
voila à l'aide d'un CommonDialog je vais chercher une image pour l'inserer
dans un pictureBox.
mais comment faire pour aller chercher des images au format "png".
merci
@ plus
petchy
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 17 mai 2007 à 19:39
Re
merci DARKSIDIOUS pour tous ses renseignements sur le GDI+,
mais j'ai essayé d'insérer un PNG dans mon picturebox mais j'ai toujours la meme erreur ,je ne comprends pas ou il faut mettre les codes pour avoir un PNG.
petchy
TailleReel.AutoSize = True
Picture1(0).AutoRedraw = True
Picture1(1).AutoRedraw = True
End Sub
Private Sub Command2_Click()
CommonDialog1.DialogTitle = "Ouvrir une image..."
CommonDialog1.Filter = "Images (*.BMP;*.JPG;*.JPEG;*.PNG;*.GIF;*.ICO)|*.BMP;*.JPG;*.JPEG;*.PNG;*.GIF;*.ICO"
CommonDialog1.ShowOpen
If CommonDialog1.filename <> "" Then
Text2.Text = CommonDialog1.filename
End If
End Sub
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 17 mai 2007 à 19:52
Mais ce code dans l'événement paint du picturebox et non dans le load (sinon, c'est normal que tu ne vois rien car le DC du picturebox n'est certainement pas encore crée !).
Dim lBitmap As Long
Dim lGraphics As Long Call GdipCreateFromHDC(Picture1(1).hdc, lGraphics)
Call GdipCreateBitmapFromFile("c:\image.png", lBitmap)
Call GdipDrawImage(lGraphics, lBitmap, 0, 0)
Call GdipDeleteCachedBitmap(lBitmap)
Call GdipDeleteGraphics(lGraphics)
(il faut bien entendu que tu renomme le nom du fichier avec le fichier que tu veux afficher !).
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 17 mai 2007 à 20:14
RE
voila,j'ai mis le code dans l'evenement paint,mais j'ai une erreur (en rouge)
Private Sub Picture1_Paint(Index As Integer)
Dim lBitmap As Long
Dim lGraphics As Long
Dim HDC
Call GdipCreateFromHDC(Picture1(1).HDC, lGraphics)
Call GdipCreateBitmapFromFile("c:\image.png", lBitmap)
Call GdipDrawImage(lGraphics, lBitmap, 0, 0)
Call GdipDeleteCachedBitmap(lBitmap)
Call GdipDeleteGraphics(lGraphics)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 17 mai 2007 à 20:21
voilà ce que j' ai fait
1° J' ai coché GDI+ dans les références du Projet
(c' est ce que tu dois faire petchy pour éviter l' erreur)
2° Public Sub PAR_DS(xPicture As PictureBox, xPath As String)
3° Dans une feuille
Private Sub cmdCharger_Click()
Call PAR_DS(Me.Picture1, App.Path & "\temp.png")
End Sub
puis dans la Sub Paint de la PictureBox
il n' y' a pas d' erreur, mais ça marche pas !
j' ai mis HasDC de PictureBox une fois à False et une fois à True
et toujours rien ...
J' ai raté quelque chose ?
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 17 mai 2007 à 21:58
Salut à tous,
ça marche très bien dans le Load
l'AutoSize marche pas parceque c'est une image et pas une picture
faut modifier la taille du PictureBox avant de l'afficher
Dim token As Long
Private Sub Form_Load()
Dim GpInput As GdiplusStartupInput
Dim lBitmap As Long
Dim lGraphics As Long
Dim xWidth As Long
Dim xHeight As Long
GpInput.GdiplusVersion = 1
If GdiplusStartup(token, GpInput) <> Ok Then
MsgBox "Erreur chargement GDI+ !", vbCritical
Unload Me
End If
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 17 mai 2007 à 22:31
ha bon ? c'est pourtant la bibliothèque VB: Me.ScaleX Me.ScaleY
t'es peut-être en VBA alors ?
si tu l'as pas met directement la Forme en pixels ça évite les conversions
(ou si c'est en Twips multiplie par 15 ou par Screen.TwipsPerPixelX)
' c'est + 4 ou + 2 suivant que la PictureBox est en 3D ou pas
Picture1.Width = (xWidth + 4) * 15
Picture1.Height = (xHeight + 4) * 15
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 17 mai 2007 à 22:50
non, non c' est parce que j' ai fait tout le code dans une sub
placée dans un module.Donc obligé de mettre xFm.ScaleX
j' ai juste passé le nom du Form en paramètre et ça marche !
La pictureBox est redimentnnée selon la taillede l' image.
Hop là ! Top là ! toi aussi...:-)
Merci pour l' amélioration...
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 18 mai 2007 à 10:34
bonjour à tous
un grand merci pour toutes vos réponses
j'ai mis GDI+ dans les références projet et je n'est plus d'erreur.
mais les photos je vais les cherchers avec un CommonDialog et la il me refuse de les mettres dans ma picturebox, désolé,mais depuis hier je me prends la tête avec ça.
enfin,je vais continué et on verra bien.
@ plus
petchy.
ps:si vous avez un exemple,pourriez vous me l'envoyé
merci
[mailto:pascalecas@aol.com pascalecas@aol.com]
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 18 mai 2007 à 12:18
Re
voila le code je l'ait mis dans le load de la form
et la ça fontionne car j'ai il va chercher l'image dans le dossier que j'ai créer,enfin l'image et en petit meme tout petit.
mais moi je voudrais aller chercher l'image avec mon commondialog si c'est possible bien sur.
Private Sub Form_Load()
Dim GpInput As GdiplusStartupInput
Dim lBitmap As Long
Dim lGraphics As Long
Dim xWidth As Long
Dim xHeight As Long
GpInput.GdiplusVersion = 1
If GdiplusStartup(token, GpInput) <> Ok Then
MsgBox "Erreur chargement GDI+ !", vbCritical
Unload Me
End If