gibea00
Messages postés17Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention13 novembre 2007
-
7 mars 2007 à 20:38
jerry6510
Messages postés19Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention14 mars 2007
-
8 mars 2007 à 14:37
Bonjour !
J'ai un problème avec un de mes pictureBox. Je veux mettre une image de type Bmp à l'intérieur de mon pictureBox. Es-ce qu'il y a un moyen afin que l'image s'ajuste automatiquement à la grandeur du pictureBox ?
Présentement, mon image étant plus grosse je ne vois qu'une partie d'elle ?
Es-ce que quelqu'un connaît la façon de régler ce problème ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 7 mars 2007 à 20:47
Avec le controle PictureBOx, tu as la propriété AutoSize, mais elle fait l'inverse de ce que tu veux. C'est le controle qui va etre redimentionné à la taille de l'image.
Sinon il fat prendre le controle Image, ou là tu as la propriété Stretch qui correspond à ce que tu veux.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 7 mars 2007 à 21:14
Méthode popur avoir ta picturebox la plus grande possible tout en respectant les propoortions :
1) Au départ : une picturebox parfaitement carrée
2) regarder les grandeurs réelles de ton image et :
- si plus haute que large, choiisir la hauteur de ta picturebox pour la hauteur
- si plus large que haute : choisir la largeur de ta picturebox pour la largeur
3) une fois ainsi choisie la dimension maximum, pour, selon le cas, la hauteur ou la largeur :
- appliquer à l'autre dimension le coefficient hauteur/largeur qui permet de garder les mêmes proportions
- terminer maintenant par paintPocture ou (mieux) par la fonction StretchBlt de l'Api de Windows.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 7 mars 2007 à 21:49
Tiens,
Je t'ai "fabricoté/bâclé" quelque chose en vitesse :
regarde, comprends, et prends ce qui t'intéresse :
dans une form :
un cadre carré appelé Frame 1 (aux dimensions que tou voudras, mais carré !
dans ce cadre frame1, une image image1, aux dimensions que tu voudras (peu importe puisque le programme ajustera) avec la propriété picture = ta photo
ailleurs sur la Form (ou tu voudras et minuscule si tu veux)une image image2
ailleurs sur la Form (ou tu voudras car j'ajuste ensuite) : un bouton command1
où tu voudras : un timer timer1
le temps d'exposition est fixé par exposeconds (ici 3 mais tu peux modifier comme tu l'entends)
Private centre As Integer
Private zou As Integer
Private jmf As Boolean
Const exposeconds = 3
Private Sub Command1_Click()
Dim rapfin As Single
Image2.Picture = Image1.Picture
If Image2.Height >= Image2.Width Then
rapfin = Image2.Width / Image2.Height
Image1.Height = Frame1.Height
Image1.Width = Frame1.Height * rapfin
Else
rapfin = Image2.Height / Image2.Width
Image1.Width = Frame1.Width
Image1.Height = Frame1.Width * rapfin
End If
Image1.Left = (Frame1.Width - Image1.Width) / 2
Image1.Top = (Frame1.Height - Image1.Height) / 2
Frame1.Left = Me.Width
zou = Int(centre / 20)
If Timer1.Enabled = True Then
Timer1.Enabled = False
Else
Timer1.Enabled = True
End If
End Sub
Private Sub Form_Activate()
Me.Move 0, 0, Screen.Width, Screen.Height
centre = Int((Me.Width - Frame1.Width) / 2)
With Frame1
.Top = Int((Me.Height - Frame1.Height) / 2)
.Left = Me.Width
.Caption = ""
.BorderStyle = 0
End With
Image1.Stretch = True
Image2.Visible = False
Command1.Caption = "envoyer photo"
Command1.Move (Me.Width - Command1.Width) / 2, Me.Height - (Command1.Height * 2)
End Sub
Private Sub Timer1_Timer()
Dim coucou As Integer, depart As Double
coucou = 1
Frame1.Left = Frame1.Left - zou
zou = zou + coucou
coucou = coucou + 20 If Frame1.Left <centre And jmf False Then
Timer1.Enabled = False
depart = Timer
While Timer < depart + exposeconds
Command1.Visible = False
DoEvents
Wend
jmf = True
End If
Timer1.Enabled = True
If Frame1.Left < Me.Left - (Frame1.Width * 2) Then
Timer1.Enabled = False
jmf = False
Command1.Visible = True
End If
End Sub
jerry6510
Messages postés19Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention14 mars 2007 8 mars 2007 à 13:58
salut !
tu as une option dans tes les caractéristique de ton pictures box qui schress (tu a le choix avec title,none,default,schress,etc...) ou un truc dans le genre et cela te la mais a la taille automatic de ta picturebox !
(désolé pour la précison d'ou elle se trouve)
jerry6510
Messages postés19Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention14 mars 2007 8 mars 2007 à 14:14
désolé casy je n'avais pas lu jusqu'au bout ta réponse !!!
autemp pour moi !
sauf que la méthode stretch permet bien de mettre l'image que tu met dans la picturebox à la taille de celle ci !
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 8 mars 2007 à 14:21
Hola, Jerry !
Ne pas confondre le Stretch que tu fais sur un contrôle image inséré dans un container PictureBox avec un "Stretching" de la picturebox !
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 8 mars 2007 à 14:35
Il n'y a pas grand chose à préciser, Jerry, si ce n'est qu'un contrôle image inséré dans un container picturebox reste et ne sera jamais qu'un contrôle image, pas une picturebox lui-même !!!
Suggestion : regarde dans ton aide en ligne ce qu'est :
- un contrôle image
- un contrôle PictureBox
- un container (qui peut être une Form, un Frame ou une PictureBox).
Je ne vois vraiment pas quoi ajouter... tu me laisses coi !