Edit保存成图片 有谁能把edit连同里面的内容保存成bmp图像吗?有时edit很小,字符却很长,需要按照字符的长短保存,要求图像完整,谁做过类似的东西,帮帮忙吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 汗,没做过. 不过想到怎么做的.在EDIT这块按保存时,在程序中新建一个BMP文件,长和宽,按你录入的字符的字体来(经过调试得到一个字的长宽,算到EDIT有几个字符得到整个BMP的长宽).做完BMP长宽后,就在BMP的画布上,按EDIT的字体和字写入.然后保存到一个BMP文件.OK了...呵呵. 不给,代码,可能你心里会说,不地道.直接默写,有错别怪我.头中包含这二个文件.#include <graphics.hpp> ========================================================= AnsiString str; Graphics::TBitmap *BMP = new Graphics::TBitmap; //============== str=Edit1->Text.Trim(); //假设一个字长16,宽16 //============== BMP->Width=(16*str.Length())+30; BMP->Height=20; BMP->Canvas->Font->Name=Edit1->Font->Name; //把两者的字体统一下, BMP->Canvas->Font->Color=clBlack; // BMP->Canvas->Font->Size=Edit1->Font->Size; // BMP->Canvas->TextOutA(10,2,str); BMP->SaveFromFile("c:\aaa.bmp"); //输出BMP 最好还是用JPEG呵呵,这个小.BMP生成太大了.这里就不写了. delete BMP; //#include <Jpeg.hpp> //JPEG图片头文件 BMP=NULL; 汗.BCB用习惯了.在DELPHI块.包含一个Jpeg头文件.在DELPHI中,可能是JPEG.PAS.============================================= Var JPEG:TJPEGImage; str:String; begin str:=Edit1.Text.Trim; //假设一个字长16,宽16 //========================= JPEG:=TJPEGImage.Create; JPEG.Width=(16*str.Length)+30; JPEG.Height=20; JPEG.Canvas.Font.Name=Edit1.Font.Name; //把两者的字体统一下, JPEG.Canvas.Font.Color=clBlack; // JPEG.Canvas.Font.Size=Edit1.Font.Size; // JPEG.Canvas.TextOutA(10,2,str); JPEG.SaveFromFile('c:\aaa.jpeg'); delete JPEG; JPEG:=nil; end; delphi中没有这个属性呀,Edit1.Text.Trim 汗,可能写错,但意思的你应该明白啊.str:=Trim(Edit.Text) //就是把录入的字符串二边都去空格. 代码可能会写错,但意思应该不会变.以前俺也是写DELPHI的.三年未写了.现在转BCB了.......唉,算转吗????算吧! procedure TForm1.Button20Click(Sender: TObject);var b1: TBitmap;begin b1:= TBitmap.Create; b1.Width:= b1.Canvas.TextWidth(edit1.Text); b1.Height:= b1.Canvas.TextHeight(edit1.Text); b1.Canvas.TextOut(0,0,edit1.Text); b1.SaveToFile('d:\edit.bmp'); b1.Free;end; dinoalex,这位兄台,要是edit在字符格式无变化时,是可以的,但是如果字符格式一旦变化,如编程宋体,72号字,截出来的图就和原来不一样了 借用8楼的procedure TForm1.Button20Click(Sender: TObject);var b1: TBitmap;begin b1:= TBitmap.Create; b1.Width:= b1.Canvas.TextWidth(edit1.Text); b1.Height:= b1.Canvas.TextHeight(edit1.Text); b1.Canvas.font.Assign(edit1.font); b1.Canvas.TextOut(0,0,edit1.Text); b1.SaveToFile('d:\edit.bmp'); b1.Free;end; procedure TForm1.Button20Click(Sender: TObject);var b1: TBitmap;begin b1:= TBitmap.Create; b1.Canvas.font.Assign(edit1.font); b1.Width:= b1.Canvas.TextWidth(edit1.Text); b1.Height:= b1.Canvas.TextHeight(edit1.Text); b1.Canvas.TextOut(0,0,edit1.Text); b1.SaveToFile('d:\edit.bmp'); b1.Free;end; 这里的关键是计算文本长度SmallHand 的方法在英文字体时可以,甚至超过Edit框长度的文本的也截下来,但在中文字体下长度计算偏短 强,学习了。还有呢,问下,怎么要在Edit里面输入法文呢?我输不进去。[size={1}]{2}Français être [/size] b1.Canvas.Font.Assign(edit1.Font); 对,就是这样 procedure TForm1.Button20Click(Sender: TObject);var b1: TBitmap;begin b1:= TBitmap.Create; b1.Canvas.Font.Assign(edit1.Font); // <-- 要放在Set Rect 之前 b1.Width:= b1.Canvas.TextWidth(edit1.Text); b1.Height:= b1.Canvas.TextHeight(edit1.Text); b1.Canvas.TextOut(0,0,edit1.Text); b1.SaveToFile('d:\edit.bmp'); b1.Free;end; delphi5 开发人员指南 例子疑问 delphi捕获消息学习 让程序最小化时看不到程序,然后用快捷方式调出来这个要怎么做呢? 怎样将两个查询结果集(数据集)显示在同一网格中? 能否执行字符串中的Delphi语句? 求助高手,怎么打包delphi程序。 小问题!!!急,急急!!!!! ISAPI,CGI,WIN CGI什么区别 请问如何获得当前cpu温度和使用率? 如果结束重复运行的程序 QRpreview控件在哪? socket10055错误问题求教
做完BMP长宽后,就在BMP的画布上,按EDIT的字体和字写入.然后保存到一个BMP文件.OK了...呵呵.
头中包含这二个文件.
#include <graphics.hpp>
=========================================================
AnsiString str;
Graphics::TBitmap *BMP = new Graphics::TBitmap;
//==============
str=Edit1->Text.Trim(); //假设一个字长16,宽16
//==============
BMP->Width=(16*str.Length())+30;
BMP->Height=20;
BMP->Canvas->Font->Name=Edit1->Font->Name; //把两者的字体统一下,
BMP->Canvas->Font->Color=clBlack; //
BMP->Canvas->Font->Size=Edit1->Font->Size; //
BMP->Canvas->TextOutA(10,2,str);
BMP->SaveFromFile("c:\aaa.bmp"); //输出BMP 最好还是用JPEG呵呵,这个小.BMP生成太大了.这里就不写了.
delete BMP; //#include <Jpeg.hpp> //JPEG图片头文件
BMP=NULL;
包含一个Jpeg头文件.在DELPHI中,可能是JPEG.PAS.=============================================
Var
JPEG:TJPEGImage;
str:String;
begin
str:=Edit1.Text.Trim; //假设一个字长16,宽16
//=========================
JPEG:=TJPEGImage.Create;
JPEG.Width=(16*str.Length)+30;
JPEG.Height=20;
JPEG.Canvas.Font.Name=Edit1.Font.Name; //把两者的字体统一下,
JPEG.Canvas.Font.Color=clBlack; //
JPEG.Canvas.Font.Size=Edit1.Font.Size; //
JPEG.Canvas.TextOutA(10,2,str);
JPEG.SaveFromFile('c:\aaa.jpeg');
delete JPEG;
JPEG:=nil;
end;
str:=Trim(Edit.Text) //就是把录入的字符串二边都去空格.
代码可能会写错,但意思应该不会变.以前俺也是写DELPHI的.三年未写了.现在转BCB了.......唉,算转吗????算吧!
procedure TForm1.Button20Click(Sender: TObject);
var
b1: TBitmap;
begin
b1:= TBitmap.Create;
b1.Width:= b1.Canvas.TextWidth(edit1.Text);
b1.Height:= b1.Canvas.TextHeight(edit1.Text);
b1.Canvas.TextOut(0,0,edit1.Text);
b1.SaveToFile('d:\edit.bmp');
b1.Free;
end;
procedure TForm1.Button20Click(Sender: TObject);
var
b1: TBitmap;
begin
b1:= TBitmap.Create;
b1.Width:= b1.Canvas.TextWidth(edit1.Text);
b1.Height:= b1.Canvas.TextHeight(edit1.Text);
b1.Canvas.font.Assign(edit1.font);
b1.Canvas.TextOut(0,0,edit1.Text);
b1.SaveToFile('d:\edit.bmp');
b1.Free;
end;
var
b1: TBitmap;
begin
b1:= TBitmap.Create;
b1.Canvas.font.Assign(edit1.font);
b1.Width:= b1.Canvas.TextWidth(edit1.Text);
b1.Height:= b1.Canvas.TextHeight(edit1.Text);
b1.Canvas.TextOut(0,0,edit1.Text);
b1.SaveToFile('d:\edit.bmp');
b1.Free;
end;
SmallHand 的方法在英文字体时可以,甚至超过Edit框长度的文本的也截下来,但在中文字体下长度计算偏短
还有呢,问下,怎么要在Edit里面输入法文呢?我输不进去。[size={1}]{2}Français être [/size]
procedure TForm1.Button20Click(Sender: TObject);
var
b1: TBitmap;
begin
b1:= TBitmap.Create;
b1.Canvas.Font.Assign(edit1.Font); // <-- 要放在Set Rect 之前
b1.Width:= b1.Canvas.TextWidth(edit1.Text);
b1.Height:= b1.Canvas.TextHeight(edit1.Text);
b1.Canvas.TextOut(0,0,edit1.Text);
b1.SaveToFile('d:\edit.bmp');
b1.Free;
end;