Filtre de couleur

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Filtre de couleur

Message par MetalOS »

Salut les gars, ca fessais un petit moment que je n'était pas venu par manque de temps. Je viens sollicité votre aide pour un logiciel que je développe. Je cherche à créer un masque de couleur rouge sur tous l'écran. Je suis en train de développer un logiciel pour l'astronomie et je cherche à faire comme un voile rouge sur tous l'écran pour avoir une sorte de vision nocturne pendant les observation astro pour ne pas être éblouie par l'éclairage de l'écran. Seulement j'ai beau chercher sur le forum anglais et Français je ne trouve rien. Quelqu'un aurait une idée ? Merci d'avance pour votre aide.
Dernière modification par MetalOS le dim. 12/sept./2021 9:42, modifié 2 fois.
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Filtre de couleur

Message par venom »

Salut MetalOS,

Bon j'avoue que ce code est totalement écrit a l'arrache :lol: Iil y a beaucoup mieux que ça.
Mais je pense que tu cherche ce genre d'effet :

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 245, 100, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

   LoadImage(1, GetCurrentDirectory()+"Examples\Sources\Data\PureBasic.bmp") 
   
    If CreateImage(2, 168, 35, 32, RGB(255, 0, 0)) And StartDrawing(ImageOutput(2))
     DrawAlphaImage(ImageID(1), 0, 0, 100) ; <<-- valeur a changer de 0 a 255
    EndIf
  
     ImageGadget(2,  10, 10, 168, 35, ImageID(2)) 
   
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
Ps: modifier la valeur en ligne 6 pour plus ou moins de transparence.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Filtre de couleur

Message par MetalOS »

Je vais essayer mais ca y ressemble. Merci venom je posterais une capture une fois fini.
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Filtre de couleur

Message par MetalOS »

Je suis allé un peut vite mais ca ne color qu'une image. Il n'est pas possible de colorer tous l'écran complet ?
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Filtre de couleur

Message par MetalOS »

Voila ce que je voudrais obtenir

Image
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Filtre de couleur

Message par MetalOS »

A moins de colorer tous les gadget, mais sont t'ils tous colorable ?
Avatar de l’utilisateur
MLD
Messages : 1105
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Filtre de couleur

Message par MLD »

Bonjour MetalOS

Moi je te propose ceci

Code : Tout sélectionner

Enumeration
#Ma_fen
EndEnumeration


OpenWindow(#Ma_fen,0,0,1920,1080,"Ma Fenêtre",#PB_Window_BorderLess|#NUL)
SetWindowColor(#Ma_fen,$00FF)
SetWindowLongPtr_(WindowID(#Ma_fen),#GWL_EXSTYLE,#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(#Ma_fen),0,173,#LWA_ALPHA);transparence
;Vos gadgets ici
;
;
Repeat
  Event = WaitWindowEvent()
  If Event = #WM_LBUTTONDOWN
    SendMessage_(WindowID(#Ma_fen), #WM_NCLBUTTONDOWN, #HTCAPTION, 0);pour bouger la fenêtre
  EndIf
   If Event = #PB_Event_Gadget
    Select EventGadget()
 
    EndSelect
  EndIf
ForEver
End
Avec la souris tu peu faire bouger la fenêtre filtre. Ou dans ton code tu l'arrête.
Tu change la transparence de 0 a 255.
Bon courage
a+
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Filtre de couleur

Message par Ar-S »

Salut.
Je n'ai pas piger si tu cherches à masque tout le programme ou N gadget en laissant un d'ouvert.
- Dans le 1er cas pourquoi n'utilises tu pas simplement hidewindow() ?
- Dans le second cas ou si tu veux que ta fenêtre s'assombrisse à un moment T, tu mets un fond noir (ou rouge ou autre) dans le fond de te fenêtre et tu mets tous tes gadgets dans un container.
Ainsi tu as juste à cacher ce container lors que tu souhaites avoir de l'obscurité et optionnellement tu maximises la fenêtre.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Filtre de couleur

Message par venom »

Je pense que MetalOS souhaite afficher un rectangle rouge devant toute sa fenêtre (comme si on posé un calque rouge sur l'écran) avec plus ou moins de transparence.

Comme c'est pour l'astronomie, je suppose que c'est pour faire un effet de "luminosité réduite".






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Filtre de couleur

Message par MetalOS »

Oui Venom c'est exactement ça que je voudrais faire mais tout en continuant d'utiliser mon logiciel. A moins de réussir à coloré en rouge tout les gadgets. Mais ça va être compliqué car certains gadget ne ce color pas ou juste une partie.
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Filtre de couleur

Message par Ar-S »

Tu peux mettre un screenshot de ton interface. ?
Quels gadgets souhaites tu colorer ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MLD
Messages : 1105
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Filtre de couleur

Message par MLD »

Je ne comprend pas bien.
Avec le code que je te donne tu n'est pas obliger de filtrer tout l'écran. Tu peu choisir une partie de ta fenêtre, et laisser les boutons de commande de ton logiciel libre.
Dans la boucle général il faut utiliser une boucle pour deux fenêtres,ce qui te permettras l'orsque tu seras en dehors de la fenêtre filtre, d'utilisé les commandes de ton logiciel normalement.
vurvur
Messages : 60
Inscription : ven. 29/août/2014 19:52

Re: Filtre de couleur

Message par vurvur »

@MetalOS: Je pense comprendre ce que tu demandes. Ceci devrait faire ton bonheur

Code : Tout sélectionner

OpenWindow(0, 0, 0, 320, 200, "", #PB_Window_BorderLess|#PB_Window_Maximize) : SetWindowColor(0, #red)

SetWindowLongPtr_(WindowID(0), #GWL_EXSTYLE, GetWindowLongPtr_(WindowID(0), #GWL_EXSTYLE)|#WS_EX_LAYERED|#WS_EX_TRANSPARENT)
SetLayeredWindowAttributes_(WindowID(0), 0, 90, #LWA_ALPHA)

StickyWindow(0, 1)

While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
(L'application peut être fermée par clic droit via la barre des tâches de windows)
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Filtre de couleur

Message par Ar-S »

C'est un peu pour ça que je pense que créer une interface appropriée plutôt que de jouer avec un fenêtre semi transparente à gérer, qui n'empêchera certains gadgets d'être "claire" serait plus propre et plus efficace. Mais c'est sur, ça demande à repenser le soft.
Ve ce que l'on peut faire avec les Canvas, je m'orienterai dans cette direction.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MLD
Messages : 1105
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Filtre de couleur

Message par MLD »

@vuvur
c'est a peu de choses prés le même code que le mien :roll: :lol:
Répondre