Test des pixels morts

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Test des pixels morts

Message par kernadec »

Bonjour
je viens d'acheter un écran Packar Bell 230 Ws a 149€ trés bien
Mais attention chez ce fabricant, il y a des écrans 230w 240w etc..
avec "W" seul c'est la game précedente
qui sont des écrans sans réglage vertical
on se retrouve sans barre de menu dans les résolutions
au delà de 1050 pixels en verticale
et pour tester les pixels mort sur cet écran
voila un petit code

Cordialement

Code : Tout sélectionner

ExamineDesktops()
Dim color.l(4)
color(0)=RGB(0,0,0)
color(1)=RGB(255,0,0)
color(2)=RGB(0,255,0)
color(3)=RGB(0,0,255)
color(4)=RGB(255,255,255)

OpenWindow(0, 0, 0, DesktopWidth(0), DesktopWidth(0), "test pixel",#PB_Window_BorderLess )
SetWindowColor(0, color(0))
Repeat
Event=WaitWindowEvent()
   If event = #WM_KEYDOWN        ;  Commande clavier
    key = EventwParam()
   EndIf 
   If key=32                     ;  space change color
    a.l=a+1
    If a=>5:a=0:EndIf
    SetWindowColor(0, color(a))
    key=20
   EndIf 
   If key=27                     ;  sortie esc
    End
    EndIf 
ForEver
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

j'ai un truc de ce type un peu plus complet

il faut les images suivantes :
Image

Image

Image

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)]
Répondre