我想用6幅.JPG图象循环实现动画效果,但是闪烁厉害,高人指教!!!!(100分)

  • 主题发起人 主题发起人 powersun
  • 开始时间 开始时间
P

powersun

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tfrmmain.TimertuTimer(Sender: TObject);
var
picfilename:string;
begin
picfile:=picfile+1;
picfile:=picfile mod 6;
picfilename:='c:/xmx/pic/'+inttostr(picfile)+'.jpg';

image1.Visible:=not(image1.Visible);

if not image1.Visible then
image1.Picture.LoadFromFile(picfilename)

end;
 
自己定义一种转换效果,就可以把闪烁消除!
 
用DirectDraw的双缓冲吧,我的破机器能跑到70FPS
 
能否详细点,我以前制作数据库,这方面一无所知!!
 
循环实现动画效果应该考虑渐隐渐显的因素,也就是说图片不是直接载入,
而是应该渐渐显示或者消失。
关于渐隐渐显建议搜索一下以前的帖子,有很多的讨论的。
 
C++代码见DirectX 8.0 Documention(c++)
Delphi的控件用DelphiX
 
自己更正一下:
procedure Tfrmmain.TimertuTimer(Sender: TObject);
var
picfilename:string;
begin
picfile:=picfile+1;
picfile:=picfile mod 6;
picfilename:='c:/xmx/pic/'+inttostr(picfile)+'.jpg';
image1.Picture.LoadFromFile(picfilename)
end;
 
假若事先将.JPG做成GIF动画,再用GIF控件播放,是否能够解决??????
 
肯定解决
 
如果图片不大的话,可以把他们放到imagelist控件中,再来画,在32深度历险(www.vclxx.org)中有这样一个例子,
如过很大,就按tyn的来吧,
 
to LeeChange:
are you sure?
 
i'm sure
其实,既然都是JPEG,不如做成MJPEG
 
to xiaoyu_online:
补充一点:图片为800*600,24b颜色,很大!
 
to LeeChange:
不如做成MJPEG??why?what's MJPEG??
 
Motion JPEG
一种常用的运动图象压缩算法
 
那么用什么工具做成MJPEG?用什么控件播放???
谢谢!!
 
你可以试试image1.canvas.draw(rect,bmp);
用loadFromFile肯定闪烁。
 
用自己写的程序做成MJPEG,
用媒体播放器放
 
image1.canvas.draw(rect,bmp);也可能会闪烁,还有用TIME控件行吗?可能一副图还没画完又要画
另一副图了。肯定闪烁,不如做成FALSE吧!!呵呵!!
 
刚才我已经将它们作成了.AVI文件,现在应该怎么办???
 
后退
顶部