Ce code permet simplement de centrer son image ajuster et centrer avec
UN SEUL control IMAGE, pour simplifier l'utilisation il est mis dans un
controle utilisateur....
J'ai parcourus les defferentes facons de faire ( apres coup ), et ma facon ce rapproche
un peu plsu d'une source de PcPunch toutefois je n'utilise pas de Picture
Je pense que cela peu faire une bonne base ;-)
Source / Exemple :
' utilisation
ImageRedim1.LoadImage App.Path & "\apercu.jpg"
'-------------------------------------'
' Le code dans le control utilisateur '
'-------------------------------------'
Private Sub UserControl_Resize()
' un petit cadre pour mieux voir la limite du control
' on aurait pu le colorier...
Shape1.Top = 0
Shape1.Left = 0
Shape1.Width = UserControl.Width
Shape1.Height = UserControl.Height
' Mon control IMAGE1...
Image1.Top = 0
Image1.Left = 0
Image1.Width = UserControl.Width
Image1.Height = UserControl.Height
End Sub
'-----------------------------
Sub LoadImage(Filename As String)
' cache image1 du controle utilisateur
Image1.Visible = False
DoEvents
Dim Ratio
Dim Largeur_dispo As Long
Dim Hauteur_dispo As Long
' Largeur du controle utilisateur
Largeur_dispo = UserControl.Width
' Hauteur du controle utilisateur
Hauteur_dispo = UserControl.Height
' Chargement des images
Image1.Picture = LoadPicture(Filename)
' si l'image est + large que haute ou carré alors...
If Image1.Picture.Width >= Image1.Picture.Height Then
2:
' La largeur = la largeur maximale dispo
Image1.Width = Largeur_dispo
' Calcul du rapport proportionnel de l'image ( ratio )
Ratio = Image1.Picture.Height / Image1.Picture.Width
' La hauteur = largeur maximale dispo * le ratio
Image1.Height = Largeur_dispo * Ratio
' Si la hauteur dépasse de la hauteur maxi alors se baser sur le calcul en largeur sinon centrer image
If Image1.Height > Hauteur_dispo Then GoTo 1 Else GoTo fin:
End If
' si l'image est - large que haute ...
If Image1.Picture.Width < Image1.Picture.Height Then
1:
' La hauteur = la hauteur maximale dispo
Image1.Height = Hauteur_dispo
' Calcul du rapport proportionnel de l'image ( ratio )
Ratio = Image1.Picture.Width / Image1.Picture.Height
' La largeur = hauteur maximale dispo * le ratio
Image1.Width = Hauteur_dispo * Ratio
' Si la largeur dépasse de la largeur maxi alors se baser sur le calcul en largeur sinon centrer image
If Image1.Width > Largeur_dispo Then GoTo 2 Else GoTo fin:
End If
fin:
'Centrage
Image1.Top = (Hauteur_dispo - Image1.Height) / 2
Image1.Left = (Largeur_dispo - Image1.Width) / 2
DoEvents
' Affiche l'image
Image1.Visible = True
End Sub
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.