Lueur externe sur une image C# (Comme si on le faisais avec photoshop)

HACKANDROID Messages postés 103 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 3 janvier 2013 - 14 nov. 2012 à 21:08
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 15 nov. 2012 à 00:14
[b]Cha'lu,

Voila j'ai une question est-t-il possible de faire une lueur externe sur une image ? Comme sur photoshop x/

Afin d'éviter une longue explication voici une image que je faite :



Donc ce que je recherche est de refaire le même style de contour du texte:/ Si vous avez des idées je serais super heureux :3


Merci d'avance. Cordialement, Kiyo. (:
/b

1 réponse

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
15 nov. 2012 à 00:14
Salut,

Une solution serait de stocker les "bounding boxes" de chaque lettre dans ton images (leurs coordonnées).
Ensuite il faudrait utiliser l'objet :

GraphicsPath graphicsPath;

Pour simuler des coins arrondi en créant les 4 coordonnées "Arc" pour
chaques "lettres" de l'image

// Lettre 1
graphicsPath.AddArc(new Rect(X, Y, W, H), 180.0f, 90.0f);
graphicsPath.AddArc(/*...*/);
graphicsPath.AddArc(/*...*/);
graphicsPath.AddArc(/*...*/);
// Lettre 2
// ect...

Ensuite positionner la couleur centrale et les couleurs dégradées

PathGradientBrush brush = new PathGradientBrush(graphicsPath);
brush.SetCenterColor(Color.???);
brush.SetSurroundColors(Color.???, ...);

// Puis faire un effet "Glow"
float[] blendFactors = {0.0, 0.1, 0.3, 1.0};
float[] blendPos = {0.0, 0.4, 0.6, 1.0};
brush.SetBlend(blendFactors, blendPos, 4);

// Puis 1 "scale" sur X
brush.SetFocusScales(0.2f, 0.2f);
graphics.FillPath(brush, graphicsPath);


bye...
0
Rejoignez-nous