Page 1 sur 1
Police qui prend en compte le lissage
Publié : mer. 04/août/2004 20:38
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

Publié : mar. 21/sept./2004 20:33
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+
Publié : mar. 21/sept./2004 21:47
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.
Publié : sam. 25/sept./2004 13:16
par Anonyme2
Peut-être en utilisant l'API SystemParametersInfo avec la valeur SPI_SETFONTSMOOTHING
Publié : sam. 25/sept./2004 13:41
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 ^^)
Publié : sam. 25/sept./2004 13:53
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
Publié : sam. 25/sept./2004 18:37
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
Publié : sam. 25/sept./2004 19:48
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.

Publié : sam. 25/sept./2004 22:30
par Le Soldat Inconnu
ma si monsieur, ça doit être possible. photoshop le fait lui

(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
Publié : sam. 25/sept./2004 23:30
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?

Publié : dim. 26/sept./2004 6:41
par Anonyme2
Il doit y avoir une raison; bref, peut-être qu'en cherchant avec un moteur de recherche on trouvera une réponse
Publié : dim. 26/sept./2004 13:16
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 ?