裁剪并在Delphi中对齐插入的BMP

时间:2013-07-31 09:04:08

标签: delphi delphi-xe2 crop bmp

我想从剪贴板裁剪并对齐插入的BMP。 我正在尝试2天,但仍然没有用......

procedure TForm1.act1Execute(Sender: TObject);
var
BMP : TBitmap;
begin
BMP := TBitmap.Create;
BMP.Assign(Clipboard);
BMP.SetSize(400,200);
Img1.picture.Graphic := BMP;
BMP.Free;
end;

procedure TForm1.act1Update(Sender: TObject);
begin
(Sender as TAction).Enabled := Clipboard.HasFormat(CF_BITMAP);
end;

end.

1 个答案:

答案 0 :(得分:3)

如果我理解你,你需要将位图置于图像控件中心吗?

很简单 - 设置Img1.Center := True

要裁剪位图,您需要这样的代码:

    procedure CropBitmap(Bmp: TBitmap; const CropRect: TRect);
    var
      CropBmp: TBitmap;
    begin
      CropBmp := TBitmap.Create;
      try
        CropBmp.Width := CropRect.Right - CropRect.Left;
        CropBmp.Height := CropRect.Bottom - CropRect.Top;
        CropBmp.Canvas.CopyRect(
          Rect(0, 0, CropBmp.Width, CropBmp.Height),
          Bmp.Canvas,
          CropRect
        );
        Bmp.Assign(CropBmp);
      finally
        CropBmp.Free;
      end;
    end;