关于截图问题,请大家帮助

jones129 2006-06-12 01:42:24
做一个画图程序,并把画好的图显示在TIMAGE控件里面,现在想通过用户在这个控件上
用鼠标拖成一个矩形选择区域,并实现对该区域保存为BMP或JPEG文件,谢谢大家!
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
GARNETT2183 2006-08-03
  • 打赏
  • 举报
回复
www.2ccc.com就有
wudi_1982 2006-08-03
  • 打赏
  • 举报
回复
选择区域后,使用CopyRect
xaojancsdn 2006-08-03
  • 打赏
  • 举报
回复
TImageEn在哪可以下载到免费的
CACACACACA 2006-06-12
  • 打赏
  • 举报
回复
基本上就是这样.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
var
p1: TPoint;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

begin
p1.X := X;
p1.Y := Y;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
bmp :TBitmap;
rect :TRect;
begin
bmp := TBitmap.Create;
rect.Left := p1.X;
rect.Top := p1.Y;
rect.Bottom := Y;
rect.Right := X;
bmp.Canvas.CopyRect( rect, Image1.Picture.Bitmap.Canvas, Image1.BoundsRect );
bmp.SaveToFile('c:\aa.bmp');
FreeAndNil( bmp );

end;
GARNETT2183 2006-06-12
  • 打赏
  • 举报
回复
最简单的实现方法,就是和组件TImageEn可以不写一行代码达到你的要求...

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧