帮帮忙.......关于图片动态缩放显示的问题

mdejtod 2008-11-24 06:28:53
RT
在窗体上有一 panel ,panel上有一 image 它的 属性是 clClient.
程序要实现图片由小到大缩放显示
我是这样处理 的:
一开始隐藏panel ,触发事件后,在一个循环中改变它的大小和位置,同时image 也跟着改变,并在循环中画图,但是不知怎么搞的.一直画不了,而且IMAGE的大小不会跟着变,在循环之后再画同样也画不出
以下是代码

var bmp : TGPBitmap;
gd : TGpGraphics;
begin
panel1.BrintToFont;
panel1.Visable := True;
try
bmp := TGpBitmap.Create('1.png');
Gd := TGpgraphics.Create(image1.Canvas.Handle);
For i := 1 to 20 do
begin
pnl1.Left :=
pnl1.Top :=
pnl1.Width :=
pnl1.height := //由屏幕中央向处扩散的效果
gd.Drawimage(Bmp,GpRect (0,0,image1.width,image1.height),0,0,image1.width,image1.height,utpixel);

end;
finally
Bmp.Free;
gp.Free;
end;
end;

可以实现panel缩放的效果,但是图片一直无法显示,请高人赐教,问题出在哪,谢谢了!!!
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdejtod 2008-11-26
  • 打赏
  • 举报
回复
顶起来,高人不现身......
试了很多方法,都由于窗体一直要重画,所以闪个不停,有没有什么解决办法?不在乎分。。。。
ajiwuweibin 2008-11-26
  • 打赏
  • 举报
回复
加载图片以后
IMAGE设置为最小状态
然后IMAGE的宽和高按比例增加
mdejtod 2008-11-25
  • 打赏
  • 举报
回复
tgpbitmap 是gdi + 里面的类,
不用tbitmap 是因为它支持的格式不多,不好处理,现在 基本上实现了效果,用一个 frame,在 frame上放一个 paintbox ,在paintbox 上面画,
但是在改变frame的top 和 left 时,画面显得太闪了,由于很多地方都需要重画,双缓冲也用了,不知哪位有什么更好的办法?

to : hewei001
用image1 来显示图片是可以实现效果,而且比GDI+画出来的相对要好一些,闪烁不那么严重,但是由于它的格式支持有限,所以用不了.....
天鸽 2008-11-25
  • 打赏
  • 举报
回复
image1.Stretch:= true;
for i:=0 to 10 do
begin
改变image1的大小试试!
end;
Corn1 2008-11-25
  • 打赏
  • 举报
回复
这个TGPBitmap是bitmap吗?
如果是的话,试试直接bitblt到image1.canvas上
yeah920 2008-11-25
  • 打赏
  • 举报
回复
不懂,帮你顶
ZKM_ZHANG 2008-11-25
  • 打赏
  • 举报
回复
接分
mdejtod 2008-11-25
  • 打赏
  • 举报
回复
有没有哪位提供一下解决方法哪?我会加分的,
现在用pngimage 显示,直接改变控件的大小位置,还是会闪哪。。。由于窗体一直要重画!!!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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