Convertir texte en image

cs_ludopika Messages postés 14 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 22 mai 2007 - 5 juil. 2004 à 16:18
cs_ludopika Messages postés 14 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 22 mai 2007 - 8 juil. 2004 à 12:40
Bonjour a tous,

Je voudrais convertir un apercu de texte ( exemple avec rich edit) en image bitmap.
J'ai essayé avec les memorystream et le clipboard mais ca ne fonctionne pas mon image est vide.
J'utilise le code suivant :

im:=TBitmap.Create;
im.canvas.brush.style:=bsClear;
im.Canvas.TextOut(0, 0,clipboard.AsText);
pi:=Tpicture.Create;
pi.Graphic:=im;
pi.SaveToFile('c:\imag1.bmp');
pi.Free;
im.Free;

Mon image finale est vide.

Please help me !!!! Au secours !!!!

4 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
6 juil. 2004 à 10:48
Salut,

En dimensionnant ton Bitmap, ça devrait aller mieux !

im.width := im.Canvas.TextWidth(clipboard.AsText);
im.height := im.Canvas.TextHeight(clipboard.AsText);


Ken@vo
____________________
Code, Code, Codec !
0
cs_ludopika Messages postés 14 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 22 mai 2007
8 juil. 2004 à 10:51
J'ai bien rajouter les deux lignes de code de Kenavo.
L'image contient maintenant le texte dans le fichier.
Cependant j'ai un petit soucis de présentation du texte. Lorsque je colle le texte la mise en forme ne se fait pas. Le texte est mis bout a bout sans tenir compte des caractères retour chariot.

Help me please !!
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
8 juil. 2004 à 11:39
Pour du texte Multiligne il vaut mieux utiliser la fonction DrawText :

var
im : TBitmap;
pi : TPicture;
Rec : TRect;
Flags : UINT;
LeTexte : String;
begin
im:=TBitmap.Create;
Rec := Rect(0,0,0,0); // INIT TAILLE
LeTexte := clipboard.AsText;
Flags := DT_CALCRECT;  // CALCUL TAILLE RECTANGLE
DrawText(Im.Canvas.Handle, PChar(LeTexte), Length(LeTexte), Rec, Flags);
im.width := Rec.Right;    // DIMENSIONS BITMAP
im.height := Rec.Bottom;
//im.canvas.brush.Color:=clYellow; // Couleur de fond
//im.canvas.brush.style:=bsSolid;
im.canvas.brush.style:=bsClear; // Fond transparent
Flags := 0; // DESSIN TEXTE MULTILIGNE
DrawText(Im.Canvas.Handle, PChar(LeTexte), Length(LeTexte), Rec, Flags);
pi:=Tpicture.Create;
pi.Graphic:=im;
pi.SaveToFile('c:\imag1.bmp');
pi.Free;
im.Free;
end;

Ken@vo
____________________
Code, Code, Codec !
0
cs_ludopika Messages postés 14 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 22 mai 2007
8 juil. 2004 à 12:40
Super cool,

Je vais compliquer la chose en intégrant des images c'est a dire du texte et des images à copier dans une autre image.

En fait je voudrai faire comme dans les systemes de calque.
0
Rejoignez-nous