Page 2 sur 2

Publié : sam. 07/févr./2004 22:14
par Invité
disont qu'un cm = 10 pixel en 640*480
je prend ma regle, la plaque contre l'ecran et verifi que sa fait bien 1 cm. bon c'est ok, maintenant je me met en 1280*1024 je replaque ma regle et.. ho 1cm n'est plus egal a 10 pixel, donc 1 pixel <> 1 pixel suivant les resolutions!!

Publié : sam. 07/févr./2004 22:25
par Le Soldat Inconnu
ben non, ça dépend de la taille de l'écran (convertir la diagonal de pouce en centimètre), de son format (4/3 ou 16/9 qui se retrouve à partir de la résolution, de cela, on peut trouver la longueur et la hauteur de l'écran), ensuite, il suffit de diviser la taille de l'écran par le nombre de pixel et c'est bon.

Bon ce truc n'est valable que ur l'écran. pour l'impression c'est autre chose car tous dépend de la résolution à laqualle l'on va imprimer. c'est ce que donne par exemple adobe photoshop mais cette résolution étant paramétrable...

vala, je fais un code vite fais et je le poste pour voir, ça m'amuse cette question :wink:

Publié : sam. 07/févr./2004 22:37
par Chris
L' affaire se corse !!!! :lol:

Un millimetre est une unité de mesure !!!
Un gramme, aussi !!!

Un pixel, ce n'est pas une unité de mesure. C'est le plus petit élément d'une surface de visualisation auquel on puisse affectuer individuellement des caractéristiques visuelles.
Plus la résolution est grande, plus il y a de pixels, autant en largeur qu'en hauteur. La taille du moniteur reste fixe. (Enfin, en principe :drinking: )

C'est ce qui fait qu'une plus grande résolution donne une image plus fine, mais également, des fichiers plus gros.

Pour résumer:
Un pixel, c'est un pixel, quelque soit la résolution
Plus la résolution est grande, plus le pixel est petit!
Plus les pixels sont petits, plus il en faudra dans 1 cm

Voilà ce que j'en pense! :lol:

Chris :)

Publié : sam. 07/févr./2004 23:12
par Le Soldat Inconnu
Le code qui donne le rapport pixel/cm et qui affiche un trait de 1 cm de long, prenez vos règles, chez moi, ça marche :wink:

Code : Tout sélectionner

Procedure Actualise()
  ; Calcul du rapport pixel/cm
  Rapport.f = Val(GetGadgetText(4)) / ((GetGadgetState(2) + 10) * 2.54) / Cos(ATan(Val(GetGadgetText(5)) / Val(GetGadgetText(4))))
  ; Affichage du rapport
  SetGadgetText(7, StrF(Rapport, 5))
  ; dessin d'un trait de longueur 1 cm sur l'image
  StartDrawing(ImageOutput())
    Line(5, 21, 134, 0, RGB(255, 255, 255))
    Line(5, 21, Round(Rapport + 0.5, 0), 0, 0)
  StopDrawing()
  ; Actualisation de li'mage
  SetGadgetState(8, UseImage(0))
EndProcedure


;- Debut du programe

If OpenWindow(0, 0, 0, 150, 195, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Mesure")
  If CreateGadgetList(WindowID())
  
    ; Taille de l'écran
    TextGadget(1, 3, 3, 144, 15, "Taille de l'écran", #PB_Text_Center)
    ComboBoxGadget(2, 3, 18, 144, 500) ; Liste des tailles d'écran
    For i = 10 To 30 ; On rempli la liste des tailles
      AddGadgetItem(2, -1, Str(i) + " pouces")
    Next
    SetGadgetState(2, 7)
    
    TextGadget(3, 3, 45, 144, 15, "Résolution", #PB_Text_Center)
    
    ; Résolution de l'écran
    X = GetSystemMetrics_(#SM_CXSCREEN)
    Y = GetSystemMetrics_(#SM_CYSCREEN)
    
    ; Calcul du rapport pixel/cm
    Rapport.f = X / ((GetGadgetState(2) + 10) * 2.54) / Cos(ATan(Y / X))
    
    ; Dimension de l'écran
    StringGadget(4, 3, 60, 144, 20, Str(X), #PB_String_Numeric)
    StringGadget(5, 3, 80, 144, 20, Str(Y), #PB_String_Numeric)
    
    ; Rapport pixel/cm
    TextGadget(6, 3, 105, 144, 15, "Rapport pixel / cm", #PB_Text_Center)
    StringGadget(7, 3, 120, 144, 20, StrF(Rapport, 5))
    
    ; Création de l'image pour afficher un trait de 1 cm de long
    CreateImage(0, 144, 30)
    StartDrawing(ImageOutput())
      FontID = LoadFont(0, "Tahoma", 8, #PB_Font_HighQuality)
      Box(0, 0, 144, 30, RGB(0255, 255, 255))
      DrawingMode(4)
      Box(0, 0, 144, 30, RGB(0, 0, 120))
      DrawingMode(1)
      FrontColor(0, 0, 0)
      DrawingFont(FontID)
      Locate(5, 3)
      DrawText("1 cm")
      Line(5, 21, Round(Rapport + 0.5, 0), 0)
    StopDrawing()
    
    ; Affichage de l'image
    ImageGadget(8, 3, 160, 144, 30, UseImage(0))
    
    Repeat
      Event = WaitWindowEvent()
      
      If Event = #PB_EventGadget
        Select EventGadgetID()
          Case 2
            Actualise()
          Case 4
            Actualise()
          Case 5
            Actualise()
        EndSelect
      EndIf
      
    Until Event = #WM_CLOSE
  EndIf
EndIf

Publié : sam. 07/févr./2004 23:17
par Oliv
le centimètre fait environ 1/2 pouce d'un garçon de 16ans donc ça dois être bon

Sinon avec une règle ça a l'air bon :wink:

Publié : dim. 08/févr./2004 2:41
par killer7
L'invité c'était moi lol.
Chris a écrit : Pour résumer:
Un pixel, c'est un pixel, quelque soit la résolution
Plus la résolution est grande, plus le pixel est petit!
Plus les pixels sont petits, plus il en faudra dans 1 cm

Voilà ce que j'en pense! :lol:

Chris :)
Oui, c'est exactement ce qu'il en ait, et pas autrement.
1 pixel = 1 pixel quel que soit la résolution.
Ensuite l'histoire des cm c'est une affaire de visualisation à l'écran suivant les résolutions (pour la question posée dans le 1er post).

Mais il ne faut surtout pas commettre l'erreur de dire :

"oui, mais attention ton pixel ne sera pas le même en 640x480 qu'en 800x600"

Car c'est bien le même pixel (en 800x600), mais il est affiché en plus petit et bien évidemment il en faudra plus pour remplir un cm à l'écran.

Enfin voilou, je voulais juste tenter d'éclaircir un point qui me paraissait un peu trouble !

Désolé d'avoir déclenché une émeute sur le sujet. :mrgreen:

Publié : dim. 08/févr./2004 11:25
par Pierre
merci Régis pour le code