[..] Récupérer la taille d'une image : bug

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[..] Récupérer la taille d'une image : bug

#1

Message par franco »

Salut.

Je souhaite pouvoir récupérer les dimensions d'une image : Largeur et hauteur.


J'ai recherché, et j'ai trouvé ceci : http://www.autoitscript.fr/forum/viewto ... 3455#p3455

Sur un outil, j'ai un petit souci.

Donc je décide de faire un code plus simple : j'ai le même souci.

Voici le code utilisé :
► Afficher le textecode
Voici les dimensions de la première image ($picture1) :
Largeur = 3456 px
Hauteur = 4608 px

Voici les dimensions de la deuxième image ($picture2) :
Largeur = 4608 px
Hauteur = 3456 px

Le script me sort
  • Pour $picture1 : largeur = 4608 px et Hauteur = 3456 px
  • Pour $picture2 : largeur = 4608 px et Hauteur = 3456 px
Souci : Il me sort les mêmes dimensions.

J'ai l'impression que la plus grosse valeur est donnée par la variable liée à _GDIPlus_ImageGetWidth.
Alors qu'il se peut que la hauteur soit plus grande que la largeur.


Une idée de ce schmilblick ? :mrgreen:

Merci à tous.
@bientôt! ;)


++
Modifié en dernier par franco le lun. 01 sept. 2014 22:46, modifié 2 fois.
L'entraide, c'est mon dada ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#2

Message par mikell »

Hum je viens de tester ton code et il marche correctement
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#3

Message par franco »

Salut.

Tu vas pouvoir (si tu le veux ^^) m'enlever un doute.

En fait, il s'agit de photos prises par mon appareil photo numérique.
=> Une horizontalement : 4068 de largeur x 3456 de hauteur
=> Une verticalement : 3456 de largeur x 4068 de hauteur

Et bien avec ce code, j'obtiens pour chacune de ces images, les mêmes dimensions.


J'ai créé deux images ayant comme dimensions :
=> 400 de la largeur et 300 de hauteur
=> 300 de largeur et 400 de hauteur

Et le code fonctionne.

Donc je peux en déduire (peut-être à tort), que les images trop "grandes" ne passent pas avec ce code.


J'ai hébergé les photos, au cas où quelqu'un voudrait les dimensions lui-même.
http://puu.sh/bbdeE/e3a120661a.JPG
http://puu.sh/bbdh4/e947cbb664.JPG


Sinon, ce n'est pas grave, juste que cela m'aurait arrangé de trouver le schmiblick ^^


Edit :
J'ai refait le code en analysant
-> les images créées (400*300 et 300*400)
-> les photos (4068*3456 et 3456*4068)
► Afficher le texte
Même souci.

Une image pour preuve :P
Image

Donc :
Les images créées passent.
Les images de mon APN non.

@+ et merci à tous.
L'entraide, c'est mon dada ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#4

Message par mikell »

Testé avec tes 2 images, effectivement ça bugge
Mais si je prends l'image 1 et la pivote de 90° avec un éditeur, là ça marche
Conclusion : ce n'est pas une question de taille d'image, ça doit être une histoire de métadonnées

Edit
Et c'est logique, ton APN c'est pas parce que tu vas lui donner une position à 90° en prenant ton cliché que pour lui la largeur va devenir la hauteur :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#5

Message par franco »

Salut

AH bin mince. :lol:

Windows m'affiche les dimensions voulues.

Donc GDIPlus se base - en très gros ^^ - sur les métadonnées.


Je vais voir si je peux pas trouver une alternative.



Merci à toi :D
L'entraide, c'est mon dada ;)
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#6

Message par ani »

Aucun bug rencontré
Meme windows retourne les valeur suivantes 4608x3456 (pour les deux images)

Comme l'a signalé mikell (c' du au 90°), on la pivote et hop on obtiend 3456-4608
Y a surement une methode pour savoir si l'image fut pivoté ou non (panoramique ou non ect)
visionne msdn :o

ps: dans ton code avec le hImg4 = _GDIPlus_ImageLoadFromFile($variable) t'a indiqué dcim1 au lieu du dcim2

voilàvoilà

edit: ton windows te retourne des valeurs differentes pour les deux images (celle posté ?) étrange
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#7

Message par franco »

Salut.

En faisant propriétés sur l'image puis sur détails, je trouve effectivement des dimensions différentes pour les deux images citées.
En image : http://www.screencourier.com/image/vg96 ... 4jvp3z.jpg

Néanmoins, j'ai trouvé une alternative sur le forum anglais.
Ca me sort bien ce que windows me dit. :mrgreen:
http://www.autoitscript.com/forum/topic ... ntry764849

Je vais donc modifier un tantinet le code et me créer une fonction, à mettre dans une boucle for.
Car j'ai plusieurs images à traiter. ;)


Je reviendrais poster le tout. :)


++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#8

Message par franco »

Salut.

Ca fonctionne chez moi maintenant.

Voici le code fonctionnel - mais pas défintif :mrgreen:
► Afficher le textevoir le code
Et voilà :D

Je pense que je peux mettre en résolu.
Mais j'attends tout de même vos avis, car ils éclairent souvent ma lente terne. :P


@+ et merci :D
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#9

Message par franco »

Salut.

Juste une autre petite dernière (ou pas d'ailleurs :mrgreen: ) question...

=> Je sais qu'on peut :mrgreen: récupérer la position d'un contrôle.


Ma question : Peut-on récupérer les positions X et Y de la GUI elle-même ?

En effet, je cherche à "modifier" la taille de la GUI : ce que je sais faire. (merci Google ^^)
Mais tout en gardant la position de la GUI : donc, il me faut connaitre la position X et Y de cette dernière.

J'ai utilisé ControlGetPos : sans succès.


@+ et merci. :)
L'entraide, c'est mon dada ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#10

Message par mikell »

WinGetPos ? Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#11

Message par franco »

Salut.

J'ai essayé aussi.

La première fois que j'essaye : échec :D


je vazis retenter.

Merci et a+
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#12

Message par franco »

Salut.

En effet, ça fonctionne : je ne savais pas qu'on pouvait mettre directement le handle de la GUI.

En fait, la gui principal n'affiche pas tout.
Une fois appuyé sur le bouton, j'aimerais que la GUI s'aggrandisse.

Je pensais donc faire un WinMove simple : mais j'ai mal interprété la chose.


En effet, ça agrandit que la partie visible (et c'est logique).


Comment faire pour que la gui affiche le reste ?
En gros, que la hauteur évolue en faisant donc apparaitre le reste (la largeur n'évoluant pas).

Note : Je pense aussi que ça sera plus simple de créer une seconde interface. ^^


@+ et merci à toi et aux autres.
L'entraide, c'est mon dada ;)
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Récupérer la taille d'une image : bug

#13

Message par ani »

Y aune autre fonction __WinAPI_GetWindowRect($hWnd)
Elle utilise une structure Rect, qui retourne = Left, Top, Right, Bottom,

Code : Tout sélectionner

#include <winapi.au3>
$a = GUICreate("",400,200,100,100)
GUISetState()
While 1
    $msg = GUIGetMsg()
    If $msg = -3 then 
        $p = _WinAPI_GetWindowRect($a)
         ConsoleWrite(DllStructGetData($p,1) & @LF)    ; X.
         ConsoleWrite(DllStructGetData($p,2) & @LF)    ; Y.
         ConsoleWrite(DllStructGetData($p,3) & @LF)
         ConsoleWrite(DllStructGetData($p,4) & @LF)
         Exit
     EndIf
WEnd

guidelete($a)
ENfin y a d'autre solution comme _WinAPI_GetWindowPlacement


edit:arf t'a répliqué.
Répondre