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. #21
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Bonsoir,

    Citation Envoyé par Andnotor Voir le message
    Prendre la ligne au centre de l'image recherchée me semblerait plus pertinent.
    […]
    Et donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      P2    := B2.ScanLine[B2.Height div 2];
    ou je n'ai pas compris ?


    Citation Envoyé par Andnotor Voir le message
    Exemple, l'image de gauche est trouvée dans celle de droite :
    Pièce jointe 474076
    C'est curieux, je ne vois pas pourquoi. Ou alors c'est un défaut (mal exprimé) que tu montres ?

    l'image de gauche est trouvée dans celle de droite alors que ça ne devrait pas ?
    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

  2. #22
    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
    Bonjour,

    Citation Envoyé par Andnotor Voir le message
    @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.
    Tout à fait et c'est même évident maintenant
    Mais quand je l'ai posté à 3h du matin je devais être moins frais que je ne le pensais


    Pour le reste, en théorie, je suis d'accord avec toi mais en pratique c'est une autre histoire !

    En testant une grande image de fond Bleu (2518x2040) avec une ligne bleue (1 ton de diff ~ de taille 100x2)
    placée à Left: 2396 Top: 2025
    Les chronos sont clairs CompareMem reste, en moyenne, 5 fois plus lent que PosEx malgré une comparaison sur toute la ligne.

    @Jipété
    Citation Envoyé par Andnotor Voir le message
    ... Prendre la ligne au centre de l'image recherchée me semblerait plus pertinent.
    cette remarque était destinée à mon code dans: procedure Tfrm_ImgSearchMain.btn_SearchClick(Sender: TObject);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      SPos := Image2.Picture.Bitmap.Height div 2;
    C'est d'ailleurs pour cette raison que la variable "SPos" est présente dans le code

    Sinon
    Citation Envoyé par Andnotor Voir le message
    l'image de gauche est trouvée dans celle de droite
    j'en arrive aux mêmes conclusions que Jipété "ça ne devrait pas être le cas"
    ou, pareil, je n'ai rien compris à l'exemple

    Cordialement,
    @+

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Yep !
    Citation Envoyé par Cirec Voir le message
    Les chronos sont clairs CompareMem reste, en moyenne, 5 fois plus lent que PosEx malgré une comparaison sur toute la ligne.
    Curieux...

    Dans ma vieille version de Lazarus (mais pas de raison que ces choses bas niveau évoluent en profondeur), on peut trouver, au milieu de toute cette tartine de code, la ligne 18, qui fait le vrai boulot :
    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
    Function PosEx(const SubStr, S: string; Offset: Cardinal): Integer;
    var
      i,MaxLen, SubLen : SizeInt;
      SubFirst: Char;
      pc : pchar;
    begin
      PosEx:=0;
      SubLen := Length(SubStr);
      if (SubLen > 0) and (Offset > 0) and (Offset <= Cardinal(Length(S))) then
       begin
        MaxLen := Length(S)- SubLen;
        SubFirst := SubStr[1];
        i := indexbyte(S[Offset],Length(S) - Offset + 1, Byte(SubFirst));
        while (i >= 0) and ((i + sizeint(Offset) - 1) <= MaxLen) do
        begin
          pc := @S[i+SizeInt(Offset)];
          //we know now that pc^ = SubFirst, because indexbyte returned a value > -1
          if (CompareByte(Substr[1],pc^,SubLen) = 0) then
          begin
            PosEx := i + SizeInt(Offset);
            Exit;
          end;
          //point Offset to next char in S
          Offset := sizeuint(i) + Offset + 1;
          i := indexbyte(S[Offset],Length(S) - Offset + 1, Byte(SubFirst));
        end;
      end;
    end;
    et qu'on va retrouver ici toute seule toute perdue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function CompareMem(P1, P2: Pointer; Length: PtrUInt): Boolean;{$ifdef SYSUTILSINLINE}inline;{$endif}
    begin
      Result:=CompareByte(P1^,P2^,Length)=0;
    end;
    Ah, les mystères de l'informatique,
    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

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par Cirec Voir le message
    j'en arrive aux mêmes conclusions que Jipété "ça ne devrait pas être le cas"
    ou, pareil, je n'ai rien compris à l'exemple
    Pas de problème, reprenons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xo  cherché dans  oooxoooo
    ox                ooooooxo
    Le premier PosEx trouve la première ligne à l'indice 3 (base 0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xo  cherché dans  oooxoooo
    ox                ooooooxo
    Pour la deuxième ligne PosEx part de l'indice 3 et trouve le motif à l'indice 5.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xo  cherché dans  oooxoooo
    ox                ooooooxo
    On a trouvé l'image pourtant ça ne correspond pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xo  cherché dans  oooxoooo
    ox                ooooooxo
    Il faut limiter la recherche entre 3 (le premier indice) et 4 (1er indice +largeur image -1).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xo  cherché dans  oooxoooo
    ox                ooooooxo
    Pour que ça fonctionne, il suffirait de SPos := Pos(Str2, Copy(Str1, IPos, Length(Str2));

  5. #25
    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
    re,

    Citation Envoyé par Jipété Voir le message
    ...
    Ah, les mystères de l'informatique,
    pour info PosEx de Delphi n'utilise pas CompareMem
    et depuis D2009 la version du FastCode Challenge y est incluse

    c'est pour cela que je fais des testes on a, des fois, de drôles de surprises

    Cordialement,
    @+

    ps: mes testes sont fait avec D7 (pas de FastCode)
    et depuis D2009 CompareMem utilise aussi le code de FastCode ce qui équilibre les temps de recherche.
    Normale ils utilisent tous le même algo

  6. #26
    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
    re,

    Citation Envoyé par Andnotor Voir le message
    Pas de problème, reprenons

    ...
    Pour que ça fonctionne, il suffirait de SPos := Pos(Str2, Copy(Str1, IPos, Length(Str2));
    je pense avoir compris ce que tu veux dire et je répondrais à cela
    non puisque l'image est considérée comme trouvée que si toutes les lignes de Bmp2 sont trouvées à la même
    position en X que la première :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            SPos := PosEx(Str2, Str1, IPos);
            if (IPos <> SPos) then
            begin
              MessageDlg('Fin de traitement. Concordance non trouvée', mtInformation, [mbOk], 0);
              Exit;
            end;
    IPos représente la position en X de la première ligne trouvée
    SPos représente la position en X de la ligne suivante trouvée

    Donc si IPos = 3
    SPos doit être = à 3 pour toutes les lignes de Bmp2

    pas de décalage possible

    Je pense que c'est ceci qui t'as fait penser à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        repeat
          IPos := IPos + 1;           //  <<<----    CECI !!!!!!!
          IPos := PosEx(Str2, Str1, IPos);
        until (IPos = 0) or (IPos mod 3 = 1);
    mais ce code intervient que si la première ligne n'a pas été trouvée alors oui on passe à l'octet suivant et on réexamine la même ligne
    et (IPos mod 3 = 1) s'assure que la position correspond bien au début d"un pixel.
    mais ce code n'intervient pas dans la recherche des lignes suivantes.


    [EDIT]
    d'ailleurs si ce que tu décris était le cas mon code ne devrait pas fonctionner avec les images suivantes (fournis dans le Zip) :
    G1.bmp pour la grande
    P1.bmp pour la petite

    pourtant il fonctionne !

    Cordialement,
    @+

  7. #27
    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,

    pour faire le test, il ne faut pas utiliser P1.bmp et G1.BMP, mais P1.BMP et G2.bmp (zippée et jointe)

    G2.zip

    La recherche en profondeur fonctionne bien, mais pas la recherche simple qui donne un faux positif.

    Bravo quand même pour la célérité !

    A+
    Charly

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

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

    Mea-culpa ! Tu as raison

  9. #29
    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
    re,

    voici une mise à jour qui corrige les faux positifs de la version simple
    elle ne se base pas que sur la première ligne mais sur 3
    la première, la dernière et celle du milieu

    et les deux procédures continuent la recherche en cas de non concordance
    j'ai inclus également la version de Andnotor et les images supplémentaires citées dans les différents messages

    le code reste perfectible mais il est fonctionnel ... en attendant de voir ce que qi130 en pense

    Recherche Image.zip

    Cordialement,
    @+

  10. #30
    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,

    Presque parfait ! à un pixel près

    Comme en témoignent ces images : P1.Bmp avec G4.Bmp et G8.bmp qui donnent des faux positifs

    ImagesTest.zip

    Une histoire de bornes certainement. Il faut tester un pixel de plus (erreur à cause du -1 ??)

    A+
    Charly

  11. #31
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    ne serait t'il pas préférable de calculer la distance des couleurs du motif
    et de faire de même avec l'image d'origine en pétitionnant par la taille du motif ?

    ce qui nous permettra par la suite de mettre un seuil de tolérance au cas ou
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  12. #32
    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,

    en fait avec P1 et G4.bmp, il n'y a que la version AndOrNot qui fonctionne correctement (==> Pas trouvé)

    A+
    Charly

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Salut,

    Et l'outil (je n'ai testé que le code d'Andnotor) ne peut pas trouver non plus G2 et G8, et cette image (où les fichiers ont été zoomés à 800 %) explique pourquoi :
    Nom : Sanstitre.png
Affichages : 113
Taille : 62,2 Ko

    Il n'y a que dans G1 qu'on trouve une zone avec les mêmes dimensions que P1.
    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

  14. #34
    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 Charly910 Voir le message
    Bonjour,

    Presque parfait ! à un pixel près

    Comme en témoignent ces images : P1.Bmp avec G4.Bmp et G8.bmp qui donnent des faux positifs

    ImagesTest.zip

    Une histoire de bornes certainement. Il faut tester un pixel de plus (erreur à cause du -1 ??)

    A+
    Charly
    Bonjour,

    oui tu as raison et la correction est simple.
    dans procedure Tfrm_ImgSearchMain.btn_DeepSearchClick(Sender: TObject);.
    tu remplaces BpS2 := BytesPerScanline(Image2.Picture.Bitmap.Width - 1, 24, 32);.
    par BpS2 := Image2.Picture.Bitmap.Width * 3;.
    et BpS1 := BytesPerScanline(Image1.Picture.Bitmap.Width - 1, 24, 32);.
    par BpS1 := Image1.Picture.Bitmap.Width * 3;.
    L'alignement sur 32bits n'est pas nécessaire et en plus il était faux (-1)
    Bien sûr les mêmes changements s'appliquent aussi à la version simple (pour ceux qui voudraient essayer)
    Merci d'avoir remarqué et remonté l'erreur
    voilà cette fois tout devrait fonctionner

    Cordialement,
    @+

    ps: peut on modifier le contenu d'un Zip ou faut il à chaque fois en poster un nouveau ?

  15. #35
    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
    Ok, ça marche. Encore bravo.

    Reste un petit soucis avec le code de AndOrNot et les images P1 et G3.bmp (le rectangle rouge touche le bord droit de G3.bmp)

    Dans ce cas le code de AndOrNot ne trouve pas de concordance. Je n'ai pas trouvé pourquoi ...

    A+
    Charly

  16. #36
    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
    re,

    pour ce dernier souci il faut retirer les "-1" des boucles :
    for y1 := 0 to B1.Height - B2.Height {- 1} do .
    for x1 := 0 to B1.Width - B2.Width {- 1} do .
    et ça fonctionne aussi

    Cordialement,
    @+

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    -1 sur la boucle x1 est faux, supprime-le !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for x1 := 0 to B1.Width -B2.Width do
    B1.Width -B2.Width donne déjà une base 0

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Reste un petit soucis avec le code de AndOrNot et les images P1 et G3.bmp (le rectangle rouge touche le bord droit de G3.bmp)
    Trouvé dans aucun zip...
    Merci.

    Ou tu veux dire G4 ?
    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

  19. #39
    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
    re,

    pour la G3.bmp comme toi je ne l'ai pas trouvé .. j'en ai donc créé une
    G3.zip

    Cordialement,
    @+

  20. #40
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    cirec dans ton algo il y a une faille si tu as deux début de motif identique sur la première ligne
    tu ne visiteras jamais le deuxième motif
    le fait d'initialisé Ipos a 0 pour chaque boucle t’empêche de visiter toutes la ligne
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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