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

PureBasic Discussion :

Red, Green et Blue(Point(x,y))


Sujet :

PureBasic

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 40
    Points : 31
    Points
    31
    Par défaut Red, Green et Blue(Point(x,y))
    Bonjour !

    Voici une petite question pour égayer ce joli forum :
    mon objectif est de stocker la couleur qui se trouve sous la souris au cours du temps dans un petit fichier texte.

    Je charge une image que j'affiche, mais la détection ne renvoie que la couleur blanc (255 255 255).

    y aurait il une solution pour obtenir la vraie couleur affichée ? Qu'est ce que j'ai loupé ???

    Merci !
    Sam


    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
     
    If InitMouse() = 0 Or InitSprite() = 0 Or InitKeyboard() = 0
      MessageRequester("Error", "Can't open DirectX 7", 0)
      End
    EndIf
     
    If OpenWindow(0, 0, 0, 1024, 768, "test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
      CreateGadgetList(WindowID(0))
      ImageGadget(0, 0, 28, WindowWidth(0), WindowHeight(0), 0, #PB_Image_Border)
     
      Filename$ = "Wheel_big.BMP"
      If LoadImage(0, Filename$)
         SetGadgetState(0, ImageID(0))
        ResizeWindow(0, #PB_Ignore, #PB_Ignore, ImageWidth(0)+4, ImageHeight(0)+34)
      EndIf
     
    If OpenFile(0, "Log.txt")
        FileSeek(0, Lof(0))
        WriteStringN(0, FormatDate("Start : %dd/%mm/%yyyy, %hh:%ii:%ss", Date()))
     
    Repeat
      EventID = WaitWindowEvent()
     
      ExamineMouse()                      
      x = MouseX()                         ; Returns actual x pos of our mouse
      y = MouseY()                         ; Returns actual y pos of our mouse
     
      R = Red(point(x,y))
      G = Green(point(x,y))
      B = Blue(point(x,y))
     
      WriteStringN(0, Str(R)+" " +Str(G)+" "+Str(B))
      Delay(20)  
     
    Until EventID = #PB_Event_CloseWindow
     
    WriteStringN(0, FormatDate("End : %dd/%mm/%yyyy, %hh:%ii:%ss", Date()))
        WriteStringN(0, "")
        CloseFile(0)
     
    EndIf
     
    EndIf
    End

  2. #2
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 926
    Points
    9 926
    Billets dans le blog
    8
    Par défaut
    Plusieurs choses, quand tu travailles en mode fenêtré, utilise WindowMouseX() et WindowMouseY().
    Ensuite il faut définir la surface sur laquelle la fonction Point() doit fonctionner.
    Pour cela il faut utiliser la commande StartDrawing().

    Voici ton code remanié, j'affiche le résultat dans le titre de la fenêtre, j'ai supprimé le fichier pour le test, tu pourras compléter à ta guise.

    Code x : 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
    If InitMouse() = 0 Or InitSprite() = 0 Or InitKeyboard() = 0
      MessageRequester("Error", "Can't open DirectX 7", 0)
      End
    EndIf
     
    If OpenWindow(0, 0, 0, 1024, 768, "test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
      CreateGadgetList(WindowID(0))
      ImageGadget(0, 0, 28, WindowWidth(0), WindowHeight(0), 0, #PB_Image_Border)
     
      CreateImage(0,256,256)
      StartDrawing(ImageOutput(0))
        Circle(128,128,100,#Yellow)
      StopDrawing()
      
      SetGadgetState(0, ImageID(0))
      ResizeWindow(0, #PB_Ignore, #PB_Ignore, ImageWidth(0)+4, ImageHeight(0)+34)
    
      Repeat
        EventID = WaitWindowEvent()
                    
        x = WindowMouseX(0)                         ; Returns actual x pos of our mouse
        y = WindowMouseY(0)                         ; Returns actual y pos of our mouse
        
        StartDrawing(WindowOutput(0))
          Couleur = Point(x,y)
          R = Red(Couleur)
          G = Green(Couleur)
        B = Blue(Couleur)
        StopDrawing()
    
        SetWindowTitle(0,Str(R)+" " +Str(G)+" "+Str(B))
    
        Delay(20)  
       
      Until EventID = #PB_Event_CloseWindow
     
    EndIf
    
    End
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Kylix] pb installation kylix 3 / Red Hat 8
    Par ms91fr dans le forum EDI
    Réponses: 1
    Dernier message: 11/12/2002, 01h28
  2. TChart : déplacer un point
    Par Nicolas dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 18h05
  3. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51
  4. Réponses: 3
    Dernier message: 12/06/2002, 19h03
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 18h14

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