请问如何才能实现从一副图像渐变到另一副图像? 请问如何才能实现从一副图像渐变到另一副图像?能给我点源程序或例子吗?望请指教,谢谢您.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题比较复杂,你最好自己写一个DIB类,实现方法:举例说第一个图像的某字节为aR1G1B1,第二个图像的某字节为aR2G2B2,这样的话新建一个DIB,这个字节就为aR3G3B3R3=tR1+(1-t)R2,t从0.01-1每算完后,显示第三个图像一次,这是最快的方法了,我想。2000里面可能好一点,有一些支持ALPHA混合的函数。不过原理一样,不会比这样快多少。 其中image2,image3 装入两个不同的.bmp图片unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);var udtblender:TBlendFunction;begin with udtblender do begin Blendop:=AC_SRC_OVER; Blendflag:=0; SourceConstantAlpha:=x; AlphaFormat=0; end; image1.Canvas.Draw(0,0,image2.Picture.Graphic); AlphaBlend(image1.Canvas.Handle,0,0,image1.Width,image1.Height, image3.Canvas.Handle,0,0,image3.Width,image3.Height, udtblender);end;end. 谢谢delphi_han大侠,等下子我去调试看看行不行... delphi_han你的程序无法运行,AlphaBlend()这个函数没有参数的,怎么你的有那么多的参数?clion:哪里有什么资料吗? 手头只有教科书.你在GOOGLE中输入"图象变形"可以找到一些文章的这里是一篇http://www.cad.zju.edu.cn/chinagraph/chinese/specialtopic/animation/Animation_ZS2_Imagemorph.doc delphi 如何画曲线呢? 医院的电子病例,用什么开发工具最好,最快? 请教这是什么控件? 关于EXCEL有条件导入导SQL的问题。 请教:用fastreport设计报表,如何出现表格? 想判断一段时间内每一天是否在表中有记录,该如何做? 关于用其它程序调用Delphi的MIDAS的问题 关于try…except的问题! 怎样学好DELPHI? 如何处理 ActiveForm 在IE中花屏问题 dephi中怎么分段分行呀,我用\n\r怎么都没有用? BetterWMf复制Autocad进入word 去掉多余空白区域 求实现原理
你最好自己写一个DIB类,
实现方法:
举例说第一个图像的某字节为
aR1G1B1,第二个图像的某字节为aR2G2B2,
这样的话新建一个DIB,这个字节就为
aR3G3B3
R3=tR1+(1-t)R2,
t从0.01-1
每算完后,
显示第三个图像一次,
这是最快的方法了,我想。
2000里面可能好一点,有一些支持ALPHA混合的函数。
不过原理一样,不会比这样快多少。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
udtblender:TBlendFunction;
begin
with udtblender do
begin
Blendop:=AC_SRC_OVER;
Blendflag:=0;
SourceConstantAlpha:=x;
AlphaFormat=0;
end;
image1.Canvas.Draw(0,0,image2.Picture.Graphic);
AlphaBlend(image1.Canvas.Handle,0,0,image1.Width,image1.Height,
image3.Canvas.Handle,0,0,image3.Width,image3.Height,
udtblender);
end;end.
clion:哪里有什么资料吗?
这里是一篇
http://www.cad.zju.edu.cn/chinagraph/chinese/specialtopic/animation/Animation_ZS2_Imagemorph.doc