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

Windows Discussion :

Inverser les Couleurs d'un hDC (plus précisément l'écran au complet)


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut Inverser les Couleurs d'un hDC (plus précisément l'écran au complet)
    Bon voila, ca fait maintenant asser longtemps que je planche sur le sujet,
    enfaite , ce que je veux faire serait d'inverser les couleurs de l'écran (j'imagine qu'il faudrait renversé la ramp des couleurs mais comment) comme sur un Mac qui l'implémente via une quelqu'onque combinaison de touche.

    J'ai cherché beaucoups pour, au final, trouver pas grand chose (aucun API qui le fasse directement) ,ils y a une fonction dans les drivers Nvidia qui, d'après la Documentation , permettrait de le faire mais bon , c'est pas vraiment potable.

    Je suis tout fois parvenu à bidouiller un petit quelque chose qui simule l'inversion des couleurs mais boucle infinie = processeur pas content.

    Évidement un driver pourrait subvenir à mes besoins mais j'aimerais plus une solution "Software-Only".

    Et pour finir, bah , effectivement l'intérêt d'inverser les couleurs n'est pas vraiment important, c'est seulement que ca me creuse depuis longtemps et donc que j'en ai fait un Défi pour moi et en même temps j'en apprend plus.

    Alors j'attends vos conseils et aides , Merci d'avance!!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour inverser un HDC, j'imagine bien un BitBlt() avec l'opération DSTINVERT...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Oui mais cette fonction ne répond pas à ma demande, mon premier post explique ce que je cherche à faire (mieu que mon titre d'ailleurs), BitBlt peut fonctionner mais il faut s'en servir dans une boucle pour que l'invertion ce tienne alors pas vraiment top.

    un exemple de soft sous Windows qui fait ce que je cherche à reproduire , PowerStrip , il semble modifier la palette de couleurs DAC mais comment, je trouve pas vraiment de truc concrete sur comment s'y prendre.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    En ce moment j'essai avec la fonction GetDIBColorTable et SetDIBColorTable, en gros ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       
    GetDIBColorTable(GetDC(0), 0, 256, tRGB(0))
       For i = 0 To lC
          tRGB2(i).rgbBlue = (&HFF Xor tRGB(i).rgbBlue)
          tRGB2(i).rgbGreen = (&HFF Xor tRGB(i).rgbGreen)
          tRGB2(i).rgbRed = (&HFF Xor tRGB(i).rgbRed)
       Next
     SetDIBColorTable(GetDC(0), 0, 256, tRGB2(0))
    mais evidement ca fonctionne pas , GetDIBColorTable et SetDIBColorTable renvoi 0, pourriez vous me dire ce qui va pas (à part le fait que ces fonctions sembles pas prend en compte le hDC d'une fenêtres...).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Encore et toujours... pourquoi n'obtien-je jamais l'aide que je demande d'une manière approprié et bien détaillé.

  6. #6
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Je sais que je n'apporte pas de réponse complète à ton problème, mais toutefois, ces document semblent expliquer les façons de manipuler les couleurs de la palette VGA vidéo (anglais) :

    Graphics

    Playing with the Palette

    The Color Palette

    The video mode 13h

    Pour ce qui est de la fonction GetDIBColorTable. C'est normal que cela ne fonctionne pas, puisque habituellement le Desktop de Windows est en 24 ou 32bits alors dans le cas, il n'y a pas de palette de couleur.
    Citation Envoyé par msdn
    The GetDIBColorTable function should be called to retrieve the color table for DIB section bitmaps that use 1, 4, or 8 bpp.
    Bref, si tu fini par trouver la solution, ça serait gentil de m'en faire part, ça m'intéresse
    Désolé de ne pas pouvoir plus t'aider, le temps me manque
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Merci Erakis, content de voir que ca intéresse au moins quelqu'un d'autre ,
    tu peux être sûr que si je parviens à un résultat , je te fais signe!!

    EDIT: Bon j'ai regardé les liens que tu m'a laissé mais ils semblent être pour les jeux et ils sont vieux (genre 7/16/1999 lol) , merci quand même, si tu trouves autres choses je suis preneur .

  8. #8
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    C'est sur que ce sont des vieux liens, mais je serait curieux de voir que l'API de Windows (d'aujourd'hui) te permettre à elle seule de changer les couleurs de ta palette VGA. C'est plus du domaine des carte graphique donc peut-être voir du côté de DirectX ou OpenGL.

    Il y a toujours ce lien qui est beaucoup plus complet, mais encore une fois il date de 1998

    Graphics Programming

    Sinon, je sais que tu veux le faire par programmation mais il y a toujours la combinaison des touches : Shift+Alt+Print Screen et tu clique sur OK Peut-être que ça pourrait t'apporter d'autres pistes...

    Bref, je te souhaite bonne chance et m'oubli pas si tu trouve quoi que ce soit
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

Discussions similaires

  1. Inverser les couleurs Windows 7
    Par fangio dans le forum Windows 7
    Réponses: 8
    Dernier message: 29/08/2013, 11h23
  2. Réponses: 4
    Dernier message: 07/06/2011, 12h03
  3. fonction qui inverse les couleurs
    Par kawther dans le forum Images
    Réponses: 1
    Dernier message: 02/12/2008, 08h18
  4. Réponses: 19
    Dernier message: 17/01/2008, 23h43
  5. [image] trouver les couleurs les plus présentes
    Par giminik dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 25/01/2005, 03h35

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