如何动态改变位图尺寸(100分)

  • 主题发起人 主题发起人 马晓光
  • 开始时间 开始时间

马晓光

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠请赐教!

在微软画图程序中,用多边形剪切按钮加切一块区域时,它会出现一个边框,
这是就可以拖动边框,改变屏蔽位图的尺寸。我在Delphi中没找到如何实现的方法,
我曾想用Canvas的DrawFoucusRect和FrameRect方法,但无效!

请问有何好的方法来实现上述功能。

我的邮箱是 Braincell@china.com

请与我联系。

 
canvas.copyrect就可以
var
Bitmap: TBitmap;
MyRect, MyOther: TRect;
begin
MyRect := Rect(0,0,256,256);
MyOther := Rect(0,0,128, 128);
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('c:/a.bmp'); //256*256
Form1.Canvas.CopyRect(Myother,Bitmap.Canvas,Myrect);
Bitmap.Free;
end;
 
g622,你好!
我今天早上试过你给我的答案,但并不是我所希望的效果,可能是我没说清楚。

请你看一下微软的画图程序,它有两个按钮,分别是“任意形状的裁剪”和“选定”。
当用它们在窗体上裁剪区域时,会出现一个虚线的矩形。在虚线上有八个点,
拖动个点时,矩形的大小会相应改变。我想知道这个可变矩形的边框是如何
实现的。

我曾想用image来实现, 但不知有何属性可以使它出现可拖拽的边框。
而且,我调用它的BeginDrag方法,拖拽它时,在它的上方会出现
一个标题。如何解决?
谢谢!
 
马晓光:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
顺便问一下,当timage的控件的大小大于一定的范围就会出错(如高为4000,宽也为4000)
请问这个应该如何解决呢?谢谢各位.
 
对不起,因为种种原因我没来提前我的帖子,望各位见谅。
我现在正在研究可变尺寸的边框,然后将遮蔽位图贴入可变边框矩形中,
然后动态遮蔽背景。现在还没成功。望各位大侠给予指点。
noall,你说TImage的控件的大小超出4000*4000会出错,我不知道是何原因,
是不是位图太大,内存出错?为何要用如此大的位图,一般位图的高应为768。
如果你已经有答案了,请与我联系,我也想知道出错原因。

Braincell@china.com
 
noall兄, 关于大位图出错的问题我最近看了一些文件,可能对你有帮助。
其实,不支持大位图,是因为Windows操作系统不支持大位图,而且也和
显卡的驱动程序有关系。Win95/Win98对大位图支持很差,而WinNT/Win2000
则好一些。每个机器因配置不同,对大位图的尺寸的上限不同,所以请
编一个尺寸限制函数吧。
另外请问
Image1.Picture.Bitmap.Assign(ABitmap);

Image1.Picture.Bitmap:=ABitmap;
有和不同?
自动填充Rect时可用FillRect方法。请问自动填充RoundRect和ellipse时
该用什么函数。
 
接受答案了.
 
后退
顶部