delphi – 将画布保存为图像

delphi – 将画布保存为图像,第1张

概述我正在使用Delphi XE2编写程序.我在画布上画了一些线条和形状.我想使用保存对话框将Canvas保存为图像文件. 所以我在表单上有一个保存按钮,通过单击它,它会打开保存对话框.我该如何继续保存画布? 目前,您很可能在TPaintBox或表单本身的OnPaint事件中拥有代码.该代码可能如下所示: procedure TMyForm.PaintBox1Paint(Sender: TObject 我正在使用Delphi XE2编写程序.我在画布上画了一些线条和形状.我想使用保存对话框将Canvas保存为图像文件.

所以我在表单上有一个保存按钮,通过单击它,它会打开保存对话框.我该如何继续保存画布?

解决方法 目前,您很可能在TPaintBox或表单本身的OnPaint事件中拥有代码.该代码可能如下所示:

procedure TMyForm.PaintBox1Paint(Sender: TObject);begin  with PaintBox1.Canvas do  begin    Moveto(0,0);    lineto(42,666);    // and so on.  end;end;

我们需要做一些重新分解.我们需要将绘制代码提取到单独的方法中.将该方法传递给画布,使其与绘制的画布无关.

procedure TMyForm.PaintToCanvas(Canvas: TCanvas);begin  with Canvas do  begin    Moveto(0,666);    // and so on.  end;end;procedure TMyForm.PaintBox1Paint(Sender: TObject);begin  PaintToCanvas(PaintBox1.Canvas);end;

我们现在回到了我们开始的地方,但准备好迎接真正的目标.让我们编写一个绘制到位图的函数,然后保存到文件中:

procedure TMyForm.PaintTofile(const filename: string);var  Bitmap: TBitmap;begin  Bitmap := TBitmap.Create;  try    Bitmap.SetSize(PaintBox1.WIDth,PaintBox1.Height);    PaintToCanvas(Bitmap.Canvas);    Bitmap.Savetofile(filename);  finally    Bitmap.Free;  end;end;

这自然可以扩展到其他图像类型,如GIF,PNG,JPEG等.

总结

以上是内存溢出为你收集整理的delphi – 将画布保存为图像全部内容,希望文章能够帮你解决delphi – 将画布保存为图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存