Je souhaite obtenir la taille actuelle d'une image affichée avec TImage, cet objet a la propriété Proportional définie sur True et est alignée sur Client avec le formulaire principal. Donc, lorsque je redimensionne le formulaire, je veux obtenir la taille actuelle pour cette image, pas la taille de la toile ni la taille réelle pour cette image. Obtenir la taille actuelle Je peux montrer quel est le pourcentage de la taille actuelle de l'image par rapport à la taille réelle de l'image. Merci d'avanceComment obtenir la taille de vue actuelle d'une image dans Delphi 2009
Répondre
Vous pouvez comparer Image1.Picture.Width ou .Height avec Image1.Width ou .Height.
Pour savoir si l'image est streched proportionnelle en utilisant la dimension horizontale ou verticale, vous devez comparer le rapport de des deux:
if Image1.Width/Image1.Height > Image1.Picture.Width/Image1.Picture.Height then
Result:=Image1.Picture.Width/Image1.Width
else
Result:=Image1.Picture.Height/Image1.Height;
utilisant une astuce mathématique pour convertir les divisions en multiplications, vous pouvez éviter la conversions en valeurs flottantes, qui calculent également un peu plus rapidement en utilisant:
if Image1.Width*Image1.Picture.Height >Image1.Picture.Width*Image1.Height then
Je ne pense pas qu'il existe un moyen intégré de faire cela. Vous pouvez juste devoir le calculer. Quelque chose comme ceci:
- Obtenez la hauteur et la largeur de la toile.
- Obtenez la hauteur et la largeur de la propriété
Picture
de l'image. - Calculez les proportions des dimensions de l'image par rapport aux dimensions du canevas.
- Le plus petit de ces deux ratios est votre pourcentage.
Chargez cette image dans un TCanvas virtuel (ou autre), puis laissez la propriété Proportionnelle comme Faux. Vous pouvez maintenant récupérer la taille d'origine de l'image. Si l'image est généralement très grande, vous devriez peut-être utiliser des bibliothèques graphiques externes.
- 1. "Les bases de Delphi" dans Delphi 2009
- 2. Delphi 2009 et la mémoire de copie
- 3. Erreur de refactorisation Delphi 2009
- 4. PNG dans Delphi 2009 Imagelists et images
- 5. DeCAL et Delphi 2009
- 6. La communication entre les clients de Delphi 2009
- 7. Comment dans Delphi 2009 rediriger la console (stin, sterr)?
- 8. Comment obtenir la date actuelle dans Cocoa
- 9. Comment obtenir le nom de la méthode actuelle dans Delphi 7?
- 10. Comment obtenir la taille d'une image intégrée/swf?
- 11. Comment utiliser les génériques C# dans Delphi 2009/2010?
- 12. Comment obtenir la taille actuelle d'une pile de matrices dans OpenGL?
- 13. Comment réparer Delphi 2009 Data Explorer?
- 14. Conversion de la valeur Integer en AnsiString dans Delphi 2009
- 15. Delphi 2009 - Propriété de type Enum personnalisé dans l'inspecteur d'objets
- 16. Utiliser l'option debug dcus dans Delphi 2009?
- 17. Conversion TMemoryStream à 'String' dans Delphi 2009
- 18. La propriété DoubleBuffered ajoutée à la dfm dans Delphi 2009 n'existe pas dans Delphi 2007
- 19. Modifier la taille de la vue MPMoviePlayerController
- 20. Delphi 2009? Ok ou buggy?
- 21. Delphi 2009 problème de compilation de génériques
- 22. FitNesse pour Delphi 2006/Delphi 2007/Delphi 2009
- 23. Comment obtenir le nom de la cible actuelle dans MSBuild?
- 24. Delphi 2009 IDE Structure Voir la fonction Collapse
- 25. Comment déclarer des variables statiques dans Delphi 2009?
- 26. Comment configurer le débogueur JIT dans Delphi 2009?
- 27. Comment puis-je obtenir la taille actuelle de la zone de document en javascript dans IE, Firefox, Webkit?
- 28. Editeur de connexion DBExpress autonome (Delphi 2009)
- 29. Fonction de commentaire PDF pour delphi 2009
- 30. Installer la dernière version d'Indy 10 sur Delphi 2009
Drat! J'étais à trois frappes et à un clic de poster cette même réponse! Tu es trop rapide, Mason. –