硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5547|回复: 0
收起左侧

TChart 保存为图像

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2016-1-6 09:53:26 | 显示全部楼层 |阅读模式
很容易实现的,先用Chart1->TeeCreateBitmap()返回是BITMAP的类型,有这个不就成了吗?或者有个更好的的办法,


Chart1->CopyToClipboardBitmap();直接到系统剪切板上,到EXCEL里一帖就行了。呵呵。

=====================

Chart1.SaveToBitmapFile('d://test.bmp'); 直接保存为bmp格式图像

---------------------------------------------------------------------------
procedure TMainForm.Button1Click(Sender: TObject);
begin     
   Chart1.Print();
end;


procedure----------------------------------------------------------------
TMainForm.Button3Click(Sender: TObject);
begin     
    SaveDialog1.Execute;   
    Chart1.SaveToBitmapFile(SaveDialog1.FileName+'.bmp');
end;






. TChart7前的版本
TChart7前的TChart可以通过类似于Chart1.Export.SaveToJPEGFile的方法把TChart存成需要的图像格式,但到TChart7后TChart就没有Export属性了,要导出图像要用下面的方法。我尽量用代码说明问题,如果细节不够的话,自己可以查询相应的源代码进行学习。




2. TChart7导出BMP、WMF





TChart7提供导出BMP、WMF的方法,直接调用即可,例子如下:Chart1.SaveToBitmapFile('c:/1.bmp');
Chart1.SaveToMetafile('c:/1.wmf');





3. TChart7导出JPG(JPEG)





TChart7导出JPG(JPEG)也比较简单,在本单元中uses TeeJPEG单元,然后执行TeeJPEG中的TeeSaveToJPEG或TeeSaveToJPEGFile。例子如下://注意要包含TeeJPEG才可以。
implementation
uses
  TeeJPEG;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TeeSaveToJPEG(Chart1, 'c:/1.jpg', -1, -1);//后面的两个参数是宽和高,如果用TeeChart的宽、高可以设为-1.
end;





4. TChart7导出GIF





TChart7导出GIF比较复杂一些,还是用代码举例吧。//注意要包含TeeGIF才可以。
implementation
uses
  TeeGIF;

procedure TForm1.Button3Click(Sender: TObject);
var
  exp : TGIFExportFormat;
  frm : TTeeGIFOptions;
begin
  exp := TGIFExportFormat.Create;
  exp.Panel := Chart1;
  frm := TTeeGIFOptions(exp.Options());
  frm.CBReduction.ItemIndex := 3;
  exp.SaveToFile('c:/1.gif');
  exp.Free;
end;

稍微解释一下,上面的例子对于TChart7的图像导出很有代表意义,其实所有格式的导出到可以用上例的方式,只是把TGIFExportFormat换成需要的格式即可,因为所有的导出都对应一种格式。
上面例子中,生成一个导出的格式类对象,设置此格式要导出的Chart,如果有必要再设定导出的选项。导出选项要特别提醒一下,所有导出格式的导出选项都是通过格式类的Options()函数得到的窗体进行设置的,这点比较奇怪。
GIF导出是必须设定frm.CBReduction.ItemIndex,因为此项缺省为0,导出是会报“Color Table error....”的错误,所以必须设为非零的值,每个值代表什么意思,自己可以查一下。




5. TChart7导出PCX





TChart7导出PCX同导出GIF极其类似,代码示例如下://注意要包含TeePCX才可以。
implementation
uses
  TeePCX;

procedure TForm1.Button4Click(Sender: TObject);
var
  exp : TPCXExportFormat;
begin
  exp := TPCXExportFormat.Create;
  exp.Panel := Chart1;
  exp.SaveToFile('c:/1.pcx');
  exp.Free;
end;





6. TChart7导出HTM





TTChart7可以直接导出到HTM,在本单元中uses TeeVMLCanvas单元,然后执行TeeVMLCanvas中的TeeSaveToVMLFile即可。示例如下://注意要包含TeeVMLCanvas才可以。
implementation
uses
  TeeVMLCanvas;
procedure TForm1.Button5Click(Sender: TObject);
begin
  TeeSaveToVMLFile(Chart1, 'c:/1.html');
end;





7. TChart7导出PNG





TTChart7可以很容易导出到PNG,在本单元中uses TeePNG单元,然后执行TeePNG中的TeeSaveToPNG即可。示例如下://注意要包含TeePNG才可以。
implementation
uses
  TeePNG;

procedure TForm1.Button7Click(Sender: TObject);
begin
  TeeSaveToPNG(Chart1, 'c:/1.png');
end;

要注意的是,保存PNG格式需要LPng.dll,所以为了能正常运行上例代码需下载安装LPng.dll。




8. 结语





本文给出了TeeChart7导出图像时的方法,每种方式都给出了代码示例,希望对使用TChart7的图像导出进行汇总。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 16:38 , Processed in 0.156442 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表