et évidemment on peut ajouter un effet d'ombre directement
et évidemment on peut ajouter un effet d'ombre directement
Faudra une fois que je teste ce FMX...
Bonjour,
Oui, mais je crains que Coussati ne souhaite pas utiliser GDI+.Andnotor : C'était un exemple en GDI. Pour un meilleur rendu, utiliser des images 32 bits et GDI+ le fera beaucoup mieux.
Entre-temps j'ai apporté quelques modifs à ton code :
- pour mieux positionner les cartes en éventail au bas du plein écran,
- la suppression d'une carte jouée était déjà faite hier,
- et j'ai ajouté une routine qui effectue un anti-alias simplifié pour améliorer un peu le rendu sur les bords.
... et voici les résultats, ce n'est pas la perfection mais déjà un peu mieux :
A+.
EDIT : Avec les ajouts le code fait maintenant 248 lignes contre les 574 lignes de mon usine à gaz.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Le mieux pour l'anti-alias et comme déjà évoqué, serait d'avoir des images plus grandes et de les réduire après rotation en spécifiant HALFTONE.
Re-salut,
Tiens, c'est une bonne idée : demain je vais les agrandir une à une avec la méthode XBR qui n'agrandit pas la pixellisation, puis j'utiliserai StretchBblt pour les réduire après rotation...Andnotor : Le mieux pour l'anti-alias et comme déjà évoqué, serait d'avoir des images plus grandes et de les réduire après rotation en spécifiant HALFTONE.
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Bonjour,
A AndNotOr
J'ai agrandi les images des cartes par un facteur de 3 puis après rotation avec Rotate(Cards[i], aAngle) dans la FormCreate j'ai utilisé StretchBblt avec HALFTONE pour obtenir l'anti-aliasing comme tu l'as conseillé et voici les résultats :
On constate sur la capture d'écran ci-après que le rendu de l'anti-aliasing ainsi que le positionnement des cartes sont excellents,
mais il y a un truc que je n'ai pas réussi :
En fin de boucle dans la FormCreate je termine par Rotate(Cards[i], 0) sinon toutes les cartes se positionnent dans l'angle supérieur gauche de l'écran,
mais cet appel à Rotate semble modifier Cards[i].Region de sorte qu'en survolant à la souris les cartes celles-ci sont détectées hors cartes dans les zones en clAqua ci-après, en plus ces zones devraient être invisibles puisque clAqua est déclarée comme couleur de transparence, et en plus l'ombre est celle des régions non inclinées qui encadrent celles des cartes inclinées : Comment rectifier ces anomalies ??? S'il te plait.
Cela vaut le coup de s'accrocher vu le rendu de l'anti-aliasing ... et comme on touche au but en réglant ces anomalies...
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
D'après l'image, la région est créée trop tard, après la rotation et le stretch.
Il faut laisser cette création directement après le chargement de l'image pour qu'elle subisse la transformation, simplement lui donner une taille 3x plus petite que l'image
Bonjour,
OK, mille fois merci, j'ai modifié la Rotate pour différencier la rotation des images agrandies (fois 3 hors code) de la rotation des régions 3x plus petites,Andnotor : D'après l'image, la région est créée trop tard, après la rotation et le stretch.
Il faut laisser cette création directement après le chargement de l'image pour qu'elle subisse la transformation, simplement lui donner une taille 3x plus petite que l'image
et voici plus bas les résultats. Le code fait maintenant 241 lignes.
A+.
EDIT : le ZIP qui se trouvait ici est remplacé par celui joint à mon message suivant.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Bonjour,
Voici les résultats d'une dernière amélioration du rendu : Suppression des petites dents de scie qui apparaissaient en particulier sur les bords de l'As de pique et du Carreau de 9 qui étaient dus aux découpage des régions.
Suppression obtenue en déclarant clSilver comme TransparentColor et en remplaçant hors code dans les BitMap's des cartes-source la clAqua par clSilver dans les coins arrondis et les bords à laisser transparents.
Petite question : Comment supprimer le ZIP devenu superflu dans mon message précédent ??? : Je n'ai pas trouvé dans "Gérer les pièces jointes" : Une combinaison de touches-clavier ???
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Bonjour Gilbert,Envoyé par Gilbert Geyer
En allant dans "Gérer les pièces jointes," on visualise des vignettes des PJ. En cochant celle désirée en bas à droite de la vignette, on peut presser la croix "X" qui apparaît en haut à droite, afin de la supprimer.
Je te laisse faire au cas où on n'aurait pas le même rendu (j'ai l'Add-On de Bovino pour FireFox).
Et merci à tous pour cette discussion passionnante !
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Bonjour,
Merci beaucoup, ça a enfin marché.Tourlourou : En cochant celle désirée en bas à droite de la vignette, on peut presser la croix "X" qui apparaît en haut à droite, afin de la supprimer
Vivement l'arrivée des écrans à nano-pixels pour en finir avec ces galères pour obtenir un anti-aliasing fin : lolEt merci à tous pour cette discussion passionnante !
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Il serait encore intéressant de voir comment se comporte SetWorldTransform sur un bitmap 32 bits. Si le canal alpha suit (mais j'ai un gros doute), la région ne servirait plus qu'à la détection du clique puisque la carte pourrait être dessinée (et stretch-ée) par AlphaBlend. Et là, fini les crénages
Re-bonjour,
Oui, mais comment fait-on tout ceci ??? ... dessiner et stretcher par AlphaBlend et ceci avec le "gros doute" ???Andnotor : Il serait encore intéressant de voir comment se comporte SetWorldTransform sur un bitmap 32 bits. Si le canal alpha suit (mais j'ai un gros doute), la région ne servirait plus qu'à la détection du clique puisque la carte pourrait être dessinée (et stretch-ée) par AlphaBlend. Et là, fini les crénages
Bigre, je pensais en avoir fini, mais bon si on peut encore améliorer ...
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager