begin process at 2010 02 10 01:34:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Multimédia

 > 

Image et Vidéo

 > 

Mettre un fond derrière un texte dans une image


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mettre un fond derrière un texte dans une image

mercredi 30 mai 2007 à 14:44:45 | Mettre un fond derrière un texte dans une image

bikini42

Bonjour à tous,

Tite question très simple je pense maisà laquelle je ne trouve pas de réponse :

"Peut-on mettre un fond (d'une couleur blanche par exemple) derrière un texte écrit avec DrawString sur une image?"

En fait, quelle que soit la couleur prise lorsque j'écris un texte sur mon image, on ne distingue pas assez les lettres dans certains endroits. Je voudrais donc simplement mettre un ti background blanc à mon texte afin de voir ce qu'il y a d'écrit en toute circonstance.

Mon code pour écrire sur mon image est le suivant :

g.DrawString("Salut",

newFont("Tahoma", taillepolice, FontStyle.Bold), newSolidBrush(Color.Red), X , Y);

Voilà, si vous connaissez l'arguement à rajouter pour mettre un fond blanc derrière ce texte, faites-moi signe svp ;)

Merci d'avance à tous
mercredi 30 mai 2007 à 14:49:57 | Re : Mettre un fond derrière un texte dans une image

bikini42

Ou bien, si vous savez comment faire un contour blanc autour des lettres de couleur... comme vous voulez si vous connaissez aussi ;)

Merci
mercredi 30 mai 2007 à 15:08:32 | Re : Mettre un fond derrière un texte dans une image

sebmafate

Membre Club Administrateur CodeS-SourceS
Attends... j'ai ça en réserve... je poste ça dans les sources :)


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
mercredi 30 mai 2007 à 15:29:01 | Re : Mettre un fond derrière un texte dans une image

sebmafate

Membre Club Administrateur CodeS-SourceS
Voici la source : http://www.csharpfr.com/code.aspx?ID=42905


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
mercredi 30 mai 2007 à 15:41:01 | Re : Mettre un fond derrière un texte dans une image

bikini42

waouhhhh !!merci bcp sebmafate!!

Mais ya vraiment pas plussimple juste pour faire les contours des lettres ou pour mettre un fond blanc derrière notre texte??

Car là ça fait vraimznt compliqué pour un novice comme moi en prog lol

Mais s'il n'y a vrament aucun moyen, je tenterais d'utiliser ça!

J'attend donc d'autres réponses encore qq temps et sinon je tenterai la tienne Sebmafate!

Mais c'est super sympa, vraiment merci!!!
mercredi 30 mai 2007 à 15:46:07 | Re : Mettre un fond derrière un texte dans une image

sebmafate

Membre Club Administrateur CodeS-SourceS
si si... il y a une autre solution... "plus artisanale"...

attends... je te fais ça !


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
mercredi 30 mai 2007 à 15:48:50 | Re : Mettre un fond derrière un texte dans une image

bikini42

C'est franchement super cool Sebmafate!

Moi je recherche rien d'extraordinaire lol, juste un contour blanc, sans effet aucun ;)

le truc le moins sophistiqué du monde quoi lol

T'es trop sympa!

Et là mon niveau a vachement augmenté en C# lol...alors imagines quand j'ai débuté, ya un mois lol


mercredi 30 mai 2007 à 16:04:52 | Re : Mettre un fond derrière un texte dans une image

sebmafate

Membre Club Administrateur CodeS-SourceS
Essaye ce code :

publicstaticImage DrawOutlinedText(string text, Font font, Color foreColor, Color lineColor, int lineWidth) {

    Bitmap retBitmap = null;

 

    using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) {

        Size sz = g.MeasureString(text, font).ToSize();

 

        using(Bitmap bmp = newBitmap(sz.Width + 2*lineWidth, sz.Height + 2*lineWidth))

        using(Graphics gBmp = Graphics.FromImage(bmp))

        using(SolidBrush brLine = newSolidBrush(lineColor))

        using (SolidBrush brFore = newSolidBrush(foreColor)) {

 

            gBmp.SmoothingMode = SmoothingMode.HighQuality;

            gBmp.InterpolationMode = InterpolationMode.HighQualityBilinear;

            gBmp.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

 

            for (int i = 0; i < lineWidth * 2; i++)

            {

                for (int j = 0; j < lineWidth * 2; j++)

                {

                    gBmp.DrawString(text, font, brLine, newPointF((float)i, (float)j));

                }

            }

            gBmp.DrawString(text, font, brFore, newPointF(lineWidth, lineWidth));

 

 

            retBitmap = (Bitmap)bmp.Clone();

        }

 

        return retBitmap;

    }

}

 


       
Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

mercredi 30 mai 2007 à 16:05:42 | Re : Mettre un fond derrière un texte dans une image

sebmafate

Membre Club Administrateur CodeS-SourceS

grrrrr !!!!

public static Image DrawOutlinedText(string text, Font font, Color foreColor, Color lineColor, int lineWidth) {
    Bitmap retBitmap = null;

    using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) {
        Size sz = g.MeasureString(text, font).ToSize();

        using(Bitmap bmp = new Bitmap(sz.Width + 2*lineWidth, sz.Height + 2*lineWidth))
        using(Graphics gBmp = Graphics.FromImage(bmp))
        using(SolidBrush brLine = new SolidBrush(lineColor))
        using (SolidBrush brFore = new SolidBrush(foreColor)) {

            gBmp.SmoothingMode = SmoothingMode.HighQuality;
            gBmp.InterpolationMode = InterpolationMode.HighQualityBilinear;
            gBmp.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

            for (int i = 0; i < lineWidth * 2; i++)
            {
                for (int j = 0; j < lineWidth * 2; j++)
                {
                    gBmp.DrawString(text, font, brLine, new PointF((float)i, (float)j));
                }
            }
            gBmp.DrawString(text, font, brFore, new PointF(lineWidth, lineWidth));


            retBitmap = (Bitmap)bmp.Clone();
        }

        return retBitmap;
    }
}




Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

mercredi 30 mai 2007 à 16:16:06 | Re : Mettre un fond derrière un texte dans une image

SharpMao

Membre Club
Je ne me moque pas, mais ça me rassure de voir que je ne suis pas le seul à qui ça arrive.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

1 2

Cette discussion est classée dans : texte, couleur, image, fond, écrit


Répondre à ce message

Sujets en rapport avec ce message

détecter présence de texte en couleur dans une image ? [ par italiasky ] Bonjour, Voila mon problème : Je capture une partie de l'écran et obtient un .bmp. Les images obtenues ne sont pas très grande, de l'ordre de 20*20 p Obtenir la couleur de fond d'un TabControl [ par WishhhMaster ] Salut, Comment puis-je obtenir la couleur d'un TabControl? La propriété BackColor renvoie toujours SystemColors.Control, mais ce n'est pas la vrai c comment inserer une zone de texte dans une image [ par TODATODA ] bonjour tout le monde.Je veux inserer une zone de texte dans une imege,comme microsoftword's text box. l'utilisateur peut changer text's font,size,sty Mettre une image en fond a un textBox ou un ComboBox, comment faire? [ par seb3034 ] Bonjours, mettre une image en font dans un textBox ou un ComboBox n'est pas natif et je recherche le moyen de pouvoir modifier cela .Merci pour toute image avec fond transparent [ par thebigboss ] Salut,voila, je suis en train de faire un jeu comportant un damier. Mes pieces (balanche ou noires) ont été dessinées sur un carré rouge.Maintenant j' enregistrer Image ?? [ par BasicInstinct ] Bonjour,je vous expose mon problème :J'ai une pictureBox (A) contenant une image de fond.J'ai une pictureBox (B) contenant une image de fond. Taille j Rafraichissement de ListView [ par Ziman ] Bonjour,j'ai un petit souci un peu bizarre. J'ai une form A qui appelle une form B grâce à un ShowDialog(); Sur la forme A, il y a une ListView qui pe Clear d'une image [ par olibara ] BonjourJ'utilise une image asser grande (2048 x 1024) avec fond transparent (pas défini)Je dois parfois effacer cette image avant de la redessinerActu Gérer un clic sur des Image avec en fond un PictureBox [ par nicodev24 ] [VS 2005 - C#]Bonjour,pour une interface graphique interactive, je veux afficher un fond de carte (un département), des icones sur ce fond de carte (v Winform : control transparent [ par t00f ] Bonjour à tous,Je viens vers vous car j'ai un soucis que je n'arrive pas à résoudre malgré mes recherches sur Internet :J'essaie de créer un control c


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,248 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales