IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Comment localiser 1 portion d'image sur l'écran ?


Sujet :

Delphi

  1. #1
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut Comment localiser 1 portion d'image sur l'écran ?
    Bonjour à tous,

    Tout est dans l'intitulé !
    Je précise cependant que l'image à chercher est fixe : il ne s'agit de shooter automatiquement des aliens apparaissant sur l'écran

    Ainsi, si je capture la partie centrale du raccourci vers Rad studio (RX en blanc sur fond rouge), comment exploiter l'image capturée pour positionner le curseur sur le raccourci (par ex avec mouse_event) ?

    A vous lire, et belle fête du travail .
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Bonsoir

    Tu veux le faire avec la VCL ou FMX ?

  3. #3
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut
    Citation Envoyé par pprem Voir le message
    Tu veux le faire avec la VCL ou FMX ?
    Avec la VCL de préférence, je ne me suis jamais frotté à FMX
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  4. #4
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Dans ce cas tu peux directement utiliser l'API de Windows.

    L'image à capturer est dans ton application ou tu veux des portions d'un écran physique ?

    Tu parles de positionner la souris quelque part, ça se fait avec des messages Windows. Tu trouveras sans doute l'inspiration sur https://docs.microsoft.com/en-us/win...v/wm-mousemove et les pages connexes.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Non, non ! C'est bien avec Mouse_Event (ou SendInput) qu'on déplace la souris.

    Les coordonnées se calculent en mickey, ce qui correspond à 65535 divisé par la taille de l'écran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Round(X *65535 /Screen.Width), Round(Y *65535 /Screen.Height), 0, 0);

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut
    Citation Envoyé par pprem Voir le message
    L'image à capturer est dans ton application ou tu veux des portions d'un écran physique ?
    Je souhaite pouvoir choisir la portion d'image à rechercher.
    J'imagine en fait une petite appli permettant de sélectionner le bout d'image parmi plusieurs captures; ça c'est simple, et je suppose que l'appli doit disposer de cette capture peut-être via un Timage?

    Mon souci est de localiser cette image dans l'écran.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Le but est de simuler un clic sur une icône reconnue sur le bureau de Windows ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Le but est de simuler un clic sur une icône reconnue sur le bureau de Windows ?
    On peut voir les choses comme ça, effectivement. Mais la difficulté n'est pas le clic.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Bonjour,

    aparté HS, désolé,
    Citation Envoyé par Andnotor Voir le message
    Les coordonnées se calculent en mickey, ce qui correspond à 65535 divisé par la taille de l'écran.
    C'est quoi, cette unité "mickey" ? Impossible de googler ce mot même en rajoutant coordonnées sans tomber sur la célèbre souris pendant des centaines de milliers de pages...

    Merci,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par Jipété Voir le message
    C'est quoi, cette unité "mickey" ?
    Il faut suivre les liens


    If MOUSEEVENTF_ABSOLUTE value is specified, dx and dy contain normalized absolute coordinates between 0 and 65,535. The event procedure maps these coordinates onto the display surface. Coordinate (0,0) maps onto the upper-left corner of the display surface, (65535,65535) maps onto the lower-right corner.

    If the MOUSEEVENTF_ABSOLUTE value is not specified, dx and dy specify relative motions from when the last mouse event was generated (the last reported position). Positive values mean the mouse moved right (or down); negative values mean the mouse moved left (or up).
    @Andnotor propose une simple règle de 3 entre les coordonnées absolues de la souris (de 0 à 65535) et la taille de l'écran

  11. #11
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Citation Envoyé par foetus Voir le message
    Il faut suivre les liens
    Et comme bien souvent cela ne m'est pas venu à l'idée, vu la tournure des phrases...
    Bref,
    A mickey is the amount that a mouse has to move for it to report that it has moved.
    Je connaissais la notion, mais pas que ce mot était utilisé pour mesurer cette quantité.
    Merci,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  12. #12
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Je remarque qu'on n'a pas du tout répondu à la question initiale : comment retrouver une petite image dans une grande !
    J'imagine que l'échelle n'est pas forcément la même, ni les couleurs (peut-être si réglage gamma, par exemple, ou transparence différente).
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  13. #13
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    peut être en s'inspirant des méthodes de reconnaissance d'images : par un scanline ligne par ligne d'une copie de l'écran, en recherchant une ligne caractéristique de la petite image (par exemple celle qui a la plus grande grande étendue de couleurs des pixels)

    Mais le traitement risque d'être long et si on trouve une correspondance, il faut encore investiguer pour vérifier que l'on retrouve bien le reste de la petite image.

    Bref pas facile !!

    A+
    Charly

  14. #14
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    bon, voilà une petite application qui détecte la présence d'une petite image dans une image plus grande.

    avec 2 jeux d'essais pour la grande image et la petite image :

    G1.bmp et P1.bmp de tailles réduites pour un résultat très rapide

    Grandeimage.bmp (portion de mon écran) et petiteimage.bmp (icône DX10) qui fonctionne mais comme je le présentais le traitement est très très long !!

    (pour réduire le temps de traitement, on peut réduire la zone de la grande image à scanner)

    Je ne pense pas que cela puisse répondre à ta demande et je ne sais pas comment les logiciels de reconnaissance d'image font pour si être rapide ?

    ScanImage.zip

    Ce petit logiciel peut être perfectionné car j'ai fait selon mes faibles moyens (peut être que Tourlourou le "roi du pixel" aura des idées )

    A+
    Charly

  15. #15
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Joli ! Et pas que la plage de Palombaggia...

    Je ne vois pas pour l'instant comment aller plus vite. [EDIT] et puis, roi du pixel ne signifie pas roi de la vélocité
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  16. #16
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Joli ! Et pas que la plage de Palombaggia...
    Quoi !? Tu connais ? Moi aussi ! Mais il y a looooongtemps...

    Citation Envoyé par tourlourou Voir le message
    Je ne vois pas pour l'instant comment aller plus vite.
    En effet.
    J'ai à une époque bricolé un système de comparaison de .bmp et j'ai fait la même chose : scanline.

    On doit pouvoir gagner quelques nanosecondes en éliminant certains calculs (suggestion d'efg) genre for i := 0 to bmp.Width - 1 do va devenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bmpWidth : integer;
    bmpWidth := bmp.Width;
    for i := 0 to bmpWidth - 1 do ...
    J'avais lu que ce genre d'accès (bmp.Width) nécessitait 3 appels système contre 1 seul pour bmpWidth.

    Et faut penser à inliner le maximum de petites fonctions souvent appelées.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  17. #17
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Palombaggia ! superbe ! Profites en bien ...

    A+
    Charly

  18. #18
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    ...
    Je ne vois pas pour l'instant comment aller plus vite. [EDIT] et puis, roi du pixel ne signifie pas roi de la vélocité
    Bonjour,

    je vous propose une version beaucoup plus rapide pour ne pas dire instantanée
    Recherche Image.zip
    le code est très simple et se passe de commentaires mais si vous avez besoin de précisions n'hésitez pas.

    2 versions de recherche sont proposées, une simple et une complète qui compare la totalité du Bmp à rechercher.
    Comme il n'y a quasi pas de différence de temps d'exécution entre les deux autant utiliser la complète
    j'ai également ajouté deux images à rechercher pour tester.


    Cordialement,
    @+

  19. #19
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    @Cirec

    C'est pas mal mais pas 100%.

    La version simple est à oublier. Chercher une seule ligne est un peu léger.
    La version complète est mieux mais souffre de quelques imperfections.

    Tu cherches la première ligne, ok ! Mais si l'image ne correspond pas, le traitement ne se poursuit pas. Seul un fragment de l'image de fond est traité.
    De plus, il faudrait être sûr qu'elle présente suffisamment de différences avec l'image de fond. Une ligne bleue sur un grand fond bleu, ça va mouliner ! (il n'y aura pas forcément d'image de fond sur le bureau de qi130)
    Prendre la ligne au centre de l'image recherchée me semblerait plus pertinent.

    Lorsque tu trouves cette première ligne, seule la portion d'image directement en dessous doit être comparée et non toute la largeur de l'image de fond.
    Exemple, l'image de gauche est trouvée dans celle de droite :
    Nom : ScanImage.jpg
Affichages : 333
Taille : 1,8 Ko

    Pas besoin de passer par des chaînes pour faire la comparaison. Utilise directement CompareMem :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    var
      Found            :boolean;
      B1, B2           :TBitmap;
      P1, P2, P11, P21 :PByte;
      BpS              :integer;
      X1, Y1, Y2       :integer;
     
    begin
      Found := FALSE;
      B1    := Image1.Picture.Bitmap;
      B2    := Image2.Picture.Bitmap;
      P2    := B2.ScanLine[0];
      BpS   := BytesPerScanline(B1.Width, 24, 32);
     
      for y1 := 0 to B1.Height -B2.Height -1 do
      begin
        P1 := B1.ScanLine[y1];
     
        for x1 := 0 to B1.Width -B2.Width -1 do
        begin
          if CompareMem(P1, P2, B2.Width *3) then
          begin
            P11 := P1;
     
            for y2 := 1 to B2.Height -1 do
            begin
              P21 := B2.ScanLine[y2];
              Dec(P11, BpS);
     
              Found := CompareMem(P11, P21, B2.Width *3);
              if not Found then Break;
            end;
     
            if Found then
            begin
              Image1.Canvas.Rectangle(TRect.Create(Point(x1, y1), B2.Width -1, B2.Height -1));
              ShowMessage('Trouvé');
              Exit;
            end;
          end;
     
          Inc(P1, 3);
        end;
      end;
     
      ShowMessage('Pas trouvé !');
    end;

  20. #20
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Bravo à tous deux ! Chapeau bas...

    NB : je pense que le -1 aux indices y1 et x1 ampute l'exhaustivité de la recherche
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

Discussions similaires

  1. Réponses: 11
    Dernier message: 07/06/2016, 15h30
  2. Comment modifier la position du curseur sur l'écran ?
    Par souffle56 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/09/2010, 00h43
  3. Vérification image sur l'écran.!
    Par kimore dans le forum Débuter
    Réponses: 4
    Dernier message: 02/04/2009, 09h44
  4. Afficher une image sur un écran 3D.
    Par pan99 dans le forum 3D
    Réponses: 1
    Dernier message: 16/04/2007, 13h48
  5. Réponses: 2
    Dernier message: 09/08/2006, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo