Police qui prend en compte le lissage

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Police qui prend en compte le lissage

Message par Le Soldat Inconnu »

Voilà, je cherche à recupérer la police qui sert au titre des fenêtres.

sur XP, lorque l'on a le lissage des polices d'actif, les titres des fenêtres ont des polices lissées, et c'est ce genre de police que j'aimerai récupérer.
on retrouve également une ombre sous les caractères.

Quelqu'un a un tuyau ? merci d'avance :wink:
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)]
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Salut !

Je reviens sur ton post ! car je pense avoir une info qui pourra peut être t'éclairer. La police est toute simplement classique pour le lissage c'est tout simplement un filtre bitmap de lissage comme on peu en trouver dans SucmmVM par exemple . Et pour l'ombre tu as la solution d'afficher 2 fois le même texte avec un décalage de quelques pixels pour donner l'effet d'ombre (couleur plus sombre pour l'ombre) et par dessus le text avec la couleur normal ...
voilà je sais pas si ça t'aidera mais ne sait on jammais ...
A+
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

oui, on peut faire le barbare aussi, on agrandi l'image par 10, on affiche la police et on réduit par 10
la aussi, on obtient du lissage mais c'est pas très ... c'est bof.

moi, je cherche la méthode utiliser par win.

par exemple quand on dessine un texte avec une police de taille inférieur à 8, on a du lissage pour rendre le texte plus lisible. ça le fait tout seul.

la question, c'est comment faire pour l'activer tout le temps.
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)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Peut-être en utilisant l'API SystemParametersInfo avec la valeur SPI_SETFONTSMOOTHING
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Heu je sais pas LSI mais pure basic utilise bien des police de windows non alors c'est quoi le probleme (J'avoue que j'ai pas trés bien comprie ^^)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

garzul a écrit :Heu je sais pas LSI mais pure basic utilise bien des police de windows non alors c'est quoi le probleme (J'avoue que j'ai pas trés bien comprie ^^)
Soit les police sont utilisées normalement soit windows permet de "lisser" les polices pour avoir un meilleur rendu.

Par programme on peut forcer ce paramètre avec l'API citée plus haut et comme tu aimes l'anglais va voir ce que dit microsoft ici

http://msdn.microsoft.com/library/defau ... rsinfo.asp
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

merci denis, on y est presque.

regarde ce code

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
; 
; Explication du programme :
; Police de caractère avec lissage.

; Création de la fenêtre et dela GadgetList
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test") = 0 Or CreateGadgetList(WindowID()) = 0
  End
EndIf

SystemParametersInfo_(#SPI_SETFONTSMOOTHING, 1, 0, 0) ; Pour activer le lissage des polices de caractère
; SystemParametersInfo_(#SPI_SETFONTSMOOTHING, 0, 0, 0) ; Pour désactiver le lissage des polices de caractère

FontID = LoadFont(0, "Arial", 20, #PB_Font_HighQuality)
FontID2 = LoadFont(1, "Arial", 10, #PB_Font_HighQuality)

CreateImage(0, 300, 300)
StartDrawing(ImageOutput())
  Box(0, 0, 300, 300, $FFFFFF)
  
  DrawingMode(1)
  FrontColor(0, 0, 0)
  
  DrawingFont(FontID)
  Locate(5, 5)
  DrawText("Bonjour")
  
  DrawingFont(FontID2)
  Locate(5, 50)
  DrawText("Bonjour")
  
StopDrawing()

ImageGadget(0, 0, 0, 0, 0, UseImage(0))

Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_EventCloseWindow

End
la police de taille 20 est lissée mais celle de taille 10 ne l'est pas du tout

je continue de chercher avec les autres paramètres
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)]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Mais comment veux tu lisser du texte qui fait 1 pixel de large!

Si tu le met en caractère gras, ta police de 10 sera lissée, parce que là, ça sera possible.

:)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ma si monsieur, ça doit être possible. photoshop le fait lui :roll: (bon d'accord, mauvais exemple)

essaie la taille 6 pour rigoler, et tu vas voir que ça marche avec des polices de moins de 1 pixels d'épaisseur
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)]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ouais t'as raison, avec une police de 6, on voit un lissage, mais faut reconnaitre que le texte ne s'affiche pas correctement à cette taille.

Le lissage améliore le confort visuel avec des dégradés mais à l'inconvénient de perdre en contraste, le lissage est plus ou moins important suivant la lettre représentée, en prenant une largeur de 1 pixel, il est plus difficile de voir son effet et toutes les lettres ne peuvent pas en bénéficier, ça limite son effet. Le lissage peut - il s'appliquer dans tous les cas suivant la taille de police et son type?, qu'en penses - tu?


:)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Il doit y avoir une raison; bref, peut-être qu'en cherchant avec un moteur de recherche on trouvera une réponse
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Faut que j'essaie un truc, ça dépend peut-être de la police.
je vais faire l'essai avec la police des titres de fenêtre de XP

effectivement, on a une incidence mais uniquement sur les polices en gras.

par exemple, avec une taille 8 en gras, Arial est lissé et Tahoma n'est pas lissé

donc ce serait une histoire de police ?
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