j'ai un truc de ce type un peu plus complet
il faut les images suivantes :
le code et les images sont la :
http://partage.lsi-dev.com/EcranLCD/
Utilisation :
Molette de la souris pour changer la luminosité
Clic droit pour changer la couleur
Clic gauche pour marquer le pixel défectueux
Code : Tout sélectionner
ExamineDesktops()
Ecran_Largeur = DesktopWidth(0)
Ecran_Hauteur = DesktopHeight(0)
x = DesktopMouseX()
y = DesktopMouseY()
; On ouvre l'openscreen
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialiser la souris ,le clavier ou l'écran. Vérifiez la présence de DirectX 7 ou supérieur.", 0)
End
EndIf
If OpenScreen(Ecran_Largeur, Ecran_Hauteur, 32, "LCD") = 0 Or InitSprite3D() = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran.", 0)
End
EndIf
NewList Couleur()
AddElement(Couleur()) : Couleur() = $FFFFFF
; AddElement(Couleur()) : Couleur() = $808080
AddElement(Couleur()) : Couleur() = $FF0000
; AddElement(Couleur()) : Couleur() = $800000
AddElement(Couleur()) : Couleur() = $00FF00
; AddElement(Couleur()) : Couleur() = $008000
AddElement(Couleur()) : Couleur() = $0000FF
; AddElement(Couleur()) : Couleur() = $000080
AddElement(Couleur()) : Couleur() = $FFFF00
; AddElement(Couleur()) : Couleur() = $808000
AddElement(Couleur()) : Couleur() = $00FFFF
; AddElement(Couleur()) : Couleur() = $008080
AddElement(Couleur()) : Couleur() = $FF00FF
; AddElement(Couleur()) : Couleur() = $800080
FirstElement(Couleur())
NewList Rond.POINT()
If OpenPreferences("Ecran LCD.ini")
Pref_Ecran_Largeur = ReadPreferenceLong("Largeur de l'écran", 0)
Pref_Ecran_Hauteur = ReadPreferenceLong("Hauteur de l'écran", 0)
If Pref_Ecran_Largeur = Ecran_Largeur And Pref_Ecran_Hauteur = Ecran_Hauteur
Pref_NbPoint = ReadPreferenceLong("Nombre de points", 0)
For n = 1 To Pref_NbPoint
AddElement(Rond())
Rond()\x = ReadPreferenceLong("Point " + Str(n) + " - X", 0)
Rond()\y = ReadPreferenceLong("Point " + Str(n) + " - Y", 0)
Next
EndIf
ClosePreferences()
EndIf
Luminosite.f = 0.5
UsePNGImageDecoder()
LoadSprite(0, "Souris.png", #PB_Sprite_AlphaBlending | #PB_Sprite_Texture)
CreateSprite3D(1, 0)
LoadSprite(2, "Zone.png", #PB_Sprite_AlphaBlending | #PB_Sprite_Texture)
CreateSprite3D(3, 2)
LoadSprite(4, "Rond.png", #PB_Sprite_AlphaBlending | #PB_Sprite_Texture)
CreateSprite3D(5, 4)
LoadFont(0, "Tahoma", 7)
MouseLocate(x, y)
Repeat
; Couleur de fond
Couleur = ColorLuminosity(Couleur(), Luminosite)
ClearScreen(Couleur)
; On lit les évènements clavier et souris
ExamineMouse()
ExamineKeyboard()
; Position de la souris
x = MouseX()
y = MouseY()
Start3D()
; Dessiner les ronds
ForEach Rond()
DisplaySprite3D(5, Rond()\x - 7, Rond()\y - 7)
Next
; Dessiner la souris
DisplaySprite3D(1, x - 7, y - 7)
; Dessiner la boite
DisplaySprite3D(3, x + 10, y + 10)
StartDrawing(ScreenOutput())
Rouge = Red(Couleur)
Vert = Green(Couleur)
Bleu = Blue(Couleur)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(0))
Index = 0
If Rouge
FrontColor($0000FF)
DrawText(x + 15, y + 15 + Index, "Rouge (" + Str(Rouge * 100 / 255 + 0.5) + "%)")
Index + 15
EndIf
If Vert
FrontColor($00FF00)
DrawText(x + 15, y + 15 + Index, "Vert (" + Str(Vert * 100 / 255 + 0.5) + "%)")
Index + 15
EndIf
If Bleu
FrontColor($FF0000)
DrawText(x + 15, y + 15 + Index, "Bleu (" + Str(Bleu * 100 / 255 + 0.5) + "%)")
Index + 15
EndIf
If Bleu = 0 And Rouge = 0 And Vert = 0
FrontColor($000000)
DrawText(x + 15, y + 15 + Index, "Noir")
Index + 15
EndIf
StopDrawing()
Stop3D()
FlipBuffers()
; Changer de couleur
If MouseButton(2)
If Souris_Bouton2 = 0
If NextElement(Couleur()) = 0
FirstElement(Couleur())
EndIf
EndIf
Souris_Bouton2 = 1
Else
Souris_Bouton2 = 0
EndIf
; Ajouter une marque
If MouseButton(1)
If Souris_Bouton1 = 0
EffaceRond = 0
ForEach Rond()
If x = Rond()\x And y = Rond()\y
EffaceRond = 1
DeleteElement(Rond())
Break
EndIf
Next
If EffaceRond = 0
AddElement(Rond())
Rond()\x = x
Rond()\y = y
EndIf
EndIf
Souris_Bouton1 = 1
Else
Souris_Bouton1 = 0
EndIf
; Changer la luminosité
Luminosite = Luminosite + MouseWheel() / 10
If Luminosite > 1
Luminosite = 1
ElseIf Luminosite < 0
Luminosite = 0
EndIf
Until KeyboardPushed(#PB_Key_Escape)
If CreatePreferences("Ecran LCD.ini")
WritePreferenceLong("Largeur de l'écran", Ecran_Largeur)
WritePreferenceLong("Hauteur de l'écran", Ecran_Hauteur)
WritePreferenceLong("Nombre de points", CountList(Rond()))
n = 0
ForEach Rond()
n + 1
WritePreferenceLong("Point " + Str(n) + " - X", Rond()\x)
WritePreferenceLong("Point " + Str(n) + " - Y", Rond()\y)
Next
ClosePreferences()
EndIf
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]