cs_ciram
Messages postés2Date d'inscriptionmardi 22 mai 2007StatutMembreDernière intervention22 mai 2007
-
22 mai 2007 à 16:53
croftman
Messages postés110Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention 2 avril 2010
-
16 juin 2007 à 16:16
Bonjour,
J'ai un petit problème avec un objet image.
J'ai programmé une petite appli en vb6 pour faire un exe sur cdrom.
Sur la première page j'ai mis un objet Image.
Cet objet recoit au chargement en Form_Load() un fichier A.gif contenu dans un repertoire fixe du cd.
Le probleme c'est qu'en fonction des besoins (donc du CD final) l'image A.gif n'a pas les mêmes dimensions !
Bien sur je souhaite que mon objet image ne change pas de dimensions.
Je souhaiterais que l'image ne soit pas déformer durant le redimmensionnement comme avec stretch et que les rapports des dimensions soit respectées.
Jai essayé le prog ci-dessous mais cela ne fonctionne pas :
Private Sub Form_Load()
Image5.Picture = LoadPicture(App.Path & "\data\A.gif")
If Image5.Picture.Height > Image5.Picture.Width Then
Image5.Picture.Height = 1695
Image5.Picture.Width = Image5.Picture.Width * (1695 / Image5.Picture.Height)
Else
Image5.Picture.Width = 2775
Image5.Picture.Height = Image5.Picture.Height * (2775 / Image5.Picture.Width)
End If
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 mai 2007 à 17:46
Bonjour,
Il ne s'agit là que d'un simple calcul arithmétique très élémentaire, basé sur le rapportk
Largeur/hauteur de l'image... (niveau CE2)
Les données de ton problème ?
- une surface d'accueil dont je te conseille de la définir carrée (ce qui te permettra d'y afficher la plus grande image proportionnée possible.
- les dimensions réelles de ton image
- si la hauteur est la plus grande, tu gardes la hauteur de ta surface d'accueil et du appliques le coefficient k à la largeur de la surface
- si c'est la largeur qui est la plus grande, tu fais l'inverse (tu gardes la largeur de ta surface et tu calcules sa hauteur en te servant du coefficient k)
Il te reste à stretcher ton image (propriété Strectch d'un contrôle image ou utilisation de paintPicture pour une picturebox ...
Tout celà est fort élémentaire, comme tu peux le constater ....
Ce n'est pas parce que l'on est en développement informatique que l'on doit oublier ces notions d'homothétie de base !
croftman
Messages postés110Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention 2 avril 2010 16 juin 2007 à 16:16
Salut!
Moi j'ai fais ça : (oui je sais pas top les goto )
If fond.Width > fond.Height Then
GoTo plusgrand
ElseIf fond.Width = fond.Height Then
If fond.Width < 4500 Then GoTo fin
fond.Width = 3375
fond.Height = 3375
GoTo fin
Else
GoTo pluspetit
End If
plusgrand:
fond.Left = 217
fond.Top = 217
If fond.Width < 4500 Then
GoTo fin
Else
ratio = fond.Width / fond.Height
If ratio >= 1.33333333333333 Then
fond.Width = 4500
fond.Height = 4500 / ratio
Else
fond.Height = 3375
fond.Width = 3375 * ratio
End If
End If
GoTo fin
pluspetit:
fond.Left = 217
fond.Top = 217
If fond.Height < 3375 Then
GoTo fin
Else
ratio = fond.Height / fond.Width
fond.Height = 3375
fond.Width = 3375 / ratio
End If
GoTo fin