S_Bmp,D_Bmp分别为TBitmap。我想将"S_Bmp"放大到800x600,并存入"D_Bmp"中,我使用了以下这条语句:
D_Bmp.Canvas.StretchDraw(rect(0,0,800,600),S_Bmp);但是为何在WinMe中可以正常放大,而在Win2000中却没有作用?!请问在Win2000中应如何才能实现将S_Bmp放大到800x600并存入D_Bmp?(不要使用TImage.Stretch:=true语句、该语句不适合我要编写的东东!)
望请指教,万分感激!
D_Bmp.Canvas.StretchDraw(rect(0,0,800,600),S_Bmp);但是为何在WinMe中可以正常放大,而在Win2000中却没有作用?!请问在Win2000中应如何才能实现将S_Bmp放大到800x600并存入D_Bmp?(不要使用TImage.Stretch:=true语句、该语句不适合我要编写的东东!)
望请指教,万分感激!
解决方案 »
- 请问怎么样跳出过程
- 老问题~~~请教高手 DELPHI连接读取XML
- FastReport 2 or 3的ole问题?
- 有人知道北京航管这家公司吗?近来说说(在线)
- DELPHI5 中 SERVICE 和 SERVICE APPLICATION 这两个工程有什么区别?
- 200分问题,知道机器上一个文件的文件名(aaa.dtt 文件为本机内,且文件唯一),如何获得该文件的路径,并将其显示再一个LABEL里?
- 怎样在delphi中打开文本文件。(用记事本)
- 如何调用Windows Shell菜单之----Windows Shell菜单中当没有目录和文件选中时又当如何将其获取?
- 免费注册活动:
- delphi7 用 idhttp.get 抓取网页显示乱码如何解决?
- 为什么application.Terminate不能终止程序的运行?
- 本人初学DELPHI:关于TWEBbrowser如何知道鼠标的一次点击是点在一个链接上的?帮我UP,入即给分。
不过可以象这样做,一来速度快些,二来减少未知因素影响。
D_Bmp.Canvas.CopyRect(
Rect(0,0,800,600),
S_Bmp.Canvas,
Rect(0,0,S_Bmp.Width,S_Bmp.Height));
D_Bmp.Width:=800;
D_Bmp.Height:=600;
CopyRect不能使用,该东东失真太严重了。Canvas.StretchDraw单独拉伸一张图片还可以,如果想要连续的拉伸几张图片并请其形式一个动画的效果,就会失效了。如果有空,您再试试看....
你可以在VCL下面这个函数里设置断点,编译选项里面加上USE DEBUG DCU
调试程序跟踪进入,看具体哪儿的问题。procedure TBitmap.Draw(ACanvas: TCanvas; const Rect: TRect);在GRAPHICS单元。