IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ecrire sur une image, problème d'anti-aliasing


Sujet :

C#

  1. #1
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut Ecrire sur une image, problème d'anti-aliasing
    Bonjour,

    J'ai décidément un problème avec les images. Le code suivant crée une nouvelle image à partir d'une image originale et d'un texte qui s'écrira en-dessous. Le code fonctionne très bien, à un problème près. Le texte s'écrit dans une fonte toute "pas belle". On dirait que le style est défini à gras, alors que pas du tout. Un collègue me dit que ça vient d'un problème d'anti-aliasing. L'ennui, c'est que je ne sais pas comment régler ça.

    Quelqu'un aurait la solution pour me dépanner ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    public static System.Drawing.Bitmap LibelledImage(System.Drawing.Bitmap originalImage, string text, System.Drawing.Font font,
    System.Drawing.Size size, int imageHeight)
    {
     
        int textHeight = size.Height - imageHeight;
     
        // Create target bitmap to return
        System.Drawing.Bitmap targetBmp = new System.Drawing.Bitmap(size.Width, size.Height, 
            System.Drawing.Imaging.PixelFormat.Format32bppArgb);
     
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(targetBmp);
     
        // Calculate image origin point and draw image
        System.Drawing.Point originImage = new System.Drawing.Point();
        originImage.X = (size.Width - originalImage.Width) / 2;
        originImage.Y = (imageHeight - originalImage.Height) / 2;
        g.DrawImage(originalImage, originImage);
     
        // Define format to draw text
        System.Drawing.StringFormat format = new System.Drawing.StringFormat();
        format.LineAlignment = System.Drawing.StringAlignment.Center;
        format.Alignment = System.Drawing.StringAlignment.Center;
     
        // Draw text in RectangleF
        System.Drawing.RectangleF rectText = new System.Drawing.RectangleF(0, imageHeight, size.Width, textHeight);
        System.Drawing.Font ft = new System.Drawing.Font(font.Name, 8.25f, System.Drawing.FontStyle.Regular);
        g.DrawString(text, ft, System.Drawing.Brushes.Black, rectText, format);
     
        return targetBmp;
     
    }
    Merci d'avance

    Papy !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    La classe Graphics a une propriété TextRenderingHint, a priori ça contrôle l'anti-aliasing du texte... (pas testé)

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    Excellent, génial, super !

    Un grand merci pour m'avoir retiré cette épine du pied.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire sur une image
    Par alliance dans le forum Langage
    Réponses: 7
    Dernier message: 22/01/2010, 16h32
  2. ecrire sur une image ?
    Par messahel dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2009, 02h37
  3. Ecrire sur une image
    Par Viscapon dans le forum AWT/Swing
    Réponses: 19
    Dernier message: 22/06/2008, 21h12
  4. [HTML] Ecrire sur une image
    Par machipot dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2007, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo