怎么使一个图片慢慢的透明?谢谢!(50分)

  • 主题发起人 主题发起人 shangxuan
  • 开始时间 开始时间
S

shangxuan

Unregistered / Unconfirmed
GUEST, unregistred user!
我的思路是:如果你的图象在一张IMAGE上,先建立一个能够存储IMAGE上所有像素颜色的数组,程序代码读去它。在需要的时候,采用FOR循环把每个像素点的颜色值从0开始递增到像素点颜色值为止。
 
如果是D6就好办,更改 Form1.AlphaBlendValue则。
 
我调试了一个可惜有闪动的
 
如果有闪动,尝试
form1.doublebuffered:=true;
 
搞定了
可是我的是有透明慢慢到不透明的
[:D]
 
var
abc:blendFunction ;
i:integer;
begin
form1.doublebuffered:=true;
for i:=250 downto 0 do begin
image1.picture.graphic:=Nil;
abc.AlphaFormat:=0;
abc.BlendFlags:=0;
abc.BlendOp:=AC_SRC_OVER;
abc.SourceConstantAlpha:=i;
AlphaBlend(image1.Canvas.Handle,0,0,image1.Width,image1.Height,getdc(0),0,0,image1.Width,image1.Height,abc);
image1.Update;
end;
end;
比较笨的代码
 
后退
顶部