做一个画图程序,并把画好的图显示在TIMAGE控件里面,现在想通过用户在这个控件上
用鼠标拖成一个矩形选择区域,并实现对该区域保存为BMP或JPEG文件,谢谢大家!

解决方案 »

  1.   

    最简单的实现方法,就是和组件TImageEn可以不写一行代码达到你的要求...
      

  2.   

    基本上就是这样.unit Unit1;interfaceuses
      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;
      

  3.   

    TImageEn在哪可以下载到免费的