[image] redimensionner

rastamath69 Messages postés 45 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 9 novembre 2009 - 26 avril 2004 à 15:59
rastamath69 Messages postés 45 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 9 novembre 2009 - 26 avril 2004 à 18:19
Rastamath69,
salut,

g voudrais afficher des images (.jpg) dans un objet IMAGE, sans que celles-ci soient deformées.

Cad que juska present j'utilise la fonction "stretch" de l'objet, mais cette derniere, redimensionne l'image pr qu'elle occuppe tte la place disponible, et moi je voudrais afficher l'image sans qu'elle se deforme qd on la retrecie.

Dc j'aurais aime savoir si une fonction fesait deja ca, ou s'il fallait que g fasse moi mm ts les calculs de proportionnalité, avec la hauteur et la largeur de la photo?

merci bcp,
@+
plus on travail , plus on a des problemes, dc plus on a de chances d'en résoudre! 8-)

2 réponses

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
26 avril 2004 à 16:38
Je viens de depose ce code il y a qq heures, il faudrait utiliser le moteur de recherche avant de poster, car sinon on se retrouve avec 100 fois la mm questions!!!

Bon il te faut utiliser un controle picturebox et la methode paintpicture, ci joint un exemple qui affiche une image en gardant le rapport H/L

Picture1.Cls
Picture1.ScaleMode = vbTwips
Picture1.AutoRedraw = True
Dim Pic As StdPicture
Set Pic = LoadPicture("c:\image.jpg")
Dim H As Long, L As Long
Dim Rapport As Double
H = Pic.Height
L = Pic.Width
Rapport = L / H
If L > H Then
Picture1.PaintPicture Pic, 0, 0, Picture1.ScaleWidth, Picture1.ScaleWidth / Rapport
Else
Picture1.PaintPicture Pic, 0, 0, Picture1.ScaleHeight * Rapport, Picture1.ScaleHeight
End If


Ps: tu peu aussi centrer l'image dans le picture box il suffit de calculer les coordo 0,0 du paintpicture!!!

++
0
rastamath69 Messages postés 45 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 9 novembre 2009 1
26 avril 2004 à 18:19
Rastamath69,

en fait j'avais regarde bcp de sujet ds la liste "graphique" avant de poster, mais la prochaine fois g regarderais encore mieux, promis!! ;-)

en tt cas, merci bcp pr ton code, mais g crois qu'il y a une ch'tite erreure que j'ai corrige paske ton redimensionnement marchait pour redimensionner si le cadre etait tres haut, mais ca foirait si il etait tres large(j'avais po tte la hauteur de la photo):

Picture1.Cls
Picture1.ScaleMode = vbTwips
Picture1.AutoRedraw = True
Dim Pic As StdPicture
Set Pic = LoadPicture(chem_photocourante)
Dim H As Long, L As Long, hpic As Long, lpic As Long
Dim Rapport As Double
H = Pic.Height
L = Pic.Width
Rapport = L / H
'If L > H Then
If (Picture1.Height / H) > (Picture1.Width / L) Then
Picture1.PaintPicture Pic, 0, 0, Picture1.ScaleWidth, Picture1.ScaleWidth / Rapport
Else
Picture1.PaintPicture Pic, 0, 0, Picture1.ScaleHeight * Rapport, Picture1.ScaleHeight
End If

C juste le test if qui couillonnait! voili voilou,
encore merci pr ton aide
@++

plus on travail , plus on a des problemes, dc plus on a de chances d'en résoudre! 8-)
0
Rejoignez-nous