Chargement image ds un picturebox (redimentionement,proportion,centrage)

Description

Voila ce petit code permet de charger une image dans un picture box
- En l'adaptant a la taille de la picture box (Stretch du controle image)
- En gardant le rapport hauteur x largeur
- En en la centrant sur le picture box

Ci joint le zip
sinon voila le code!!!!

Source / Exemple :


Private Sub Form_Load()
TailleReel.AutoSize = True
Picture1.AutoRedraw = True
End Sub

Private Sub Command1_Click()
Dim NewLargeur As Integer
Dim NewHauteur As Integer
Dim Coeff As Integer
Dim x As Integer
Dim y As Integer
Picture1.Cls
With CommonDialog1
.Filter = "(*.Jpg;*.bmp)|*.bmp;*.jpg"
.ShowOpen
End With

TailleReel.Picture = LoadPicture(CommonDialog1.FileName)

'si la taille est plus petite que la picturebox
If TailleReel.Width < Picture1.Width And TailleReel.Height < Picture1.Height Then
Coeff = 1
x = (Picture1.Width - TailleReel.Width) / 2
y = (Picture1.Height - TailleReel.Height) / 2
GoTo Affiche_image
End If
'definition du coefficient selon l'orientation de l'image

If TailleReel.Width > TailleReel.Height Then
    Coeff = TailleReel.Width / Picture1.Width
    x = 0
    y = (Picture1.Height - (TailleReel.Height / Coeff)) / 2
Else
    Coeff = TailleReel.Height / Picture1.Height
    x = (Picture1.Width - (TailleReel.Width / Coeff)) / 2
    y = 0
End If
Affiche_image:
NewLargeur = TailleReel.Width / Coeff
NewHauteur = TailleReel.Height / Coeff
Picture1.PaintPicture TailleReel.Picture, x, y, NewLargeur, NewHauteur
End Sub

Conclusion :


il serait facile d'en faire une fonction, mais je trouve pas le moyen de trouver la resolution de l'image sans passer par un controle!!!! l'ideal serait une api???
Si qq as une idée??

Codes Sources

A voir également

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.