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

Langage Delphi Discussion :

Conversion de texte en image?


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut Conversion de texte en image?
    Salut,
    Je voudrais bien savoir comment l'on peut transformer un texte en image.
    Exemple transformer par exemple le mot "NICA" en image.

    Merci de m'aider.
    salut

  2. #2
    Membre du Club Avatar de woow
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Santé

    Informations forums :
    Inscription : Février 2004
    Messages : 30
    Points : 40
    Points
    40
    Par défaut
    Salut,

    Je ne suis pas expert en la matière.
    Une possibilité (pas optimale je l'avoue) et d'avoir une image de chaque lettre que tu peux par la suite appondres pour former le mot. Désavantage : tu auras beaucoup d'images et le texte rendu ne sera pas optimale.

    Bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 38
    Points : 43
    Points
    43
    Par défaut
    Idee : recuperer les pixels des polices puis tracer le tout sur un bitmap.
    Probleme : lire le format des polices


  4. #4
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    Pour ce qui est de recuperer les pixels des polices,t'as pas un bout de code qui pourrait me donner des pistes.

    Merci.
    salut

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    A moins que j'ai mal compris la question, pourquoi ne pas utiliser un TBitmap sur lequel tu dessines le texte (TextOut) sur le Canvas?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 82
    Points : 85
    Points
    85
    Par défaut
    pour transformer le txt d'un memo en bmp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with TBitmap.Create do
        try
          PixelFormat := pf1bit;
          Width := Form1.Memo1.ClientWidth;
          Height := Form1.Memo1.ClientHeight;
          Canvas.CopyRect(Rect(0, 0, Width, Height), Form1.Canvas, Rect(
            Form1.Memo1.Left,
            Form1.Memo1.Top,
            Form1.Memo1.Left+Width,
            Form1.Memo1.Top+Height));
          SaveToFile('Memo1.bmp');
        finally
          Free;
        end;

  7. #7
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut Re: Conversion de texte en image?
    Citation Envoyé par sessime
    Salut,
    Je voudrais bien savoir comment l'on peut transformer un texte en image.
    Exemple transformer par exemple le mot "NICA" en image.

    Merci de m'aider.
    En gros, tu veux, à partir :
    -d'un texte
    -et d'une Police de caractère de ton choix.

    Obtenir un fichier bitmap ? Est-ce bien ça ?

    En fait, voici l'algorithme :
    1. Choisir le texte et la Police
    2. Créer un Bitmap (TBitmap)
    3. Dessiner le texte sur le Canvas du Bitmap
    4. Sauvegarder le Bitmap dans un Fichier


    A moins que tu préfère dans Un Windows Meta File (fichier Vectoriel)

    Bref, précise, et je pourrais sans doute te mettre du code
    Bidouilleuse Delphi

  8. #8
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Moi, j'aurai fait comme "Pedro"...

  9. #9
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    waskol,je suis interessé par ta proposition et je suis preneur si tu peux m'envoyer un bout de code .

    Merci
    salut

  10. #10
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    ok attends un peu...

  11. #11
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Voici donc une unité contenant une procedure toute faite :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    unit UnitDessineTexte;
    interface
    uses Windows,Graphics,Types;
    Procedure ConvertirTexteEnBitmap(Texte:string;NomdeFichierEnSortie:string;DessinEnCreux:boolean;Police:TFont=nil);
     
    implementation
    //Calcule la taille EXACTE d'un texte à partir d'une police de caractères choisie (Marche avec tous types de Polices : TrueType, etc...)
    function TextSize(Phrase:string;police:TFont=nil):TPoint;
    var
      DC: HDC;
      Rect: TRect;
      C : TBitmap;
    begin
      C := TBitmap.Create;
    try
      if police <> nil then  C.canvas.Font := police;
        Rect:=Bounds(0,0,0,0);
        DC := GetDC(0);
        C.Canvas.Handle := DC;
        DrawText(C.Canvas.Handle, PChar(Phrase), Length(Phrase), Rect, (DT_EXPANDTABS or DT_CALCRECT));
        C.Canvas.Handle := 0;
        ReleaseDC(0, DC);
        result.X:=Rect.Right;
        result.Y:=Rect.Bottom;
    finally
      C.Free;
    end;
    end;
     
    procedure DessineTexteSurCanvasEnCreux(ACanvas:TCanvas;ARect:TRect; Phrase:string;police:TFont=nil);
    procedure NettoyerCanvas;
      begin
        with ACanvas do begin
          Brush.Style := bsSolid;
          Brush.Color := clWhite;
          FillRect(ARect);
        end;
      end;
     
      procedure ConvertirEnPolygone;
      var
        DC : hDC;
        aPoints : Array of TPoint;
        aTypes  : Array of Byte;
        iNumPoints : integer;
      begin
        ACanvas.Brush.Style := bsClear;
        ACanvas.Font := police;
        DC := ACanvas.Handle;
     
        //On récupère le texte sous forme de polygone
        BeginPath(DC);
        DrawText(DC, pchar(Phrase),length(Phrase), ARect, DT_EXPANDTABS);
        EndPath(DC);
     
        iNumPoints := GetPath(DC,aPoints,aTypes,0);
        SetLength(aPoints,iNumPoints);
        SetLength(aTypes,iNumPoints);
        iNumPoints := GetPath(DC,aPoints[0],aTypes[0],iNumPoints);
        PolyDraw(DC,aPoints[0],aTypes[0],iNumPoints);
      end; // procedure Convert
    begin
      NettoyerCanvas;
      ConvertirEnPolygone;
    end;
     
    procedure DessineTexteSurCanvas(ACanvas:TCanvas;ARect:TRect; Phrase:string;police:TFont=nil);
    begin
      if police <> nil then  Acanvas.Font := police;
      DrawText(ACanvas.Handle, PChar(Phrase), Length(Phrase), ARect, (DT_EXPANDTABS));
    end;
     
    Procedure ConvertirTexteEnBitmap(Texte:string;NomdeFichierEnSortie:string;DessinEnCreux:boolean;Police:TFont=nil);
    var UnBitmap:TBitmap;
        APoint:TPoint;
        Rect: TRect;
    begin
      UnBitmap:=TBitmap.Create;
      APoint:=TextSize(Texte,Police);
      if police <> nil then  UnBitmap.canvas.Font := police;
      UnBitmap.Width:=APoint.X;
      UnBitmap.Height:=APoint.Y;
      rect:=Bounds(0,0,APoint.X,APoint.Y);
      if DessinEnCreux
      then DessineTexteSurCanvasEnCreux(UnBitmap.Canvas,Rect,Texte,Police)
      else DessineTexteSurCanvas(UnBitmap.Canvas,Rect,Texte,Police);
      UnBitmap.SaveToFile(NomdeFichierEnSortie);
      UnBitmap.Free;
    end;
     
    end.
    Exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
      FontDialog1.Execute;
      if SavePictureDialog1.Execute then
      ConvertirTexteEnBitmap('Bonjour !',SavePictureDialog1.FileName,True,FontDialog1.Font);
    end;
    J'espère que ça te servira
    Bidouilleuse Delphi

  12. #12
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Beaucoup mieux que ce que j'ai fait...

    Je n'abstiens donc...

  13. #13
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par yoghisan
    Beaucoup mieux que ce que j'ai fait...

    Je n'abstiens donc...
    8)
    Bidouilleuse Delphi

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

Discussions similaires

  1. Conversion Word Texte brut
    Par Tunka dans le forum Windows
    Réponses: 5
    Dernier message: 27/05/2006, 10h30
  2. [ImageMagick] Cherche à faire une image avec texte et image
    Par dnipro dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/05/2006, 14h08
  3. Conversion de text
    Par monsurf dans le forum Access
    Réponses: 8
    Dernier message: 05/05/2006, 16h53
  4. [VBA] Conversion de texte en formule
    Par preverse dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/12/2005, 16h50
  5. Conversion Nombre -> Texte
    Par Isis dans le forum Assembleur
    Réponses: 7
    Dernier message: 04/06/2003, 21h47

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