但对图片好像没找到什么好的方法
12 个解决方案
#1
图片也可以用 alphaBlend函数,其中参数“X”是控制透明度的程度
图片必须是.bmp格式
图片必须是.bmp格式
#2
不知道用bitblt是否可以实现?
就是使用copymode来控制
就是使用copymode来控制
#3
alphaBlend函数? 怎么用?
是api函数吗? 我只知道form有这个属性
是api函数吗? 我只知道form有这个属性
#4
是api函数,你查一下是api函数参考
#5
这个函数98下好象使不了吧!
#6
我使用了一下,没有出错,但是也没有任何效果出来
#7
你给的分太少了,这不是一个小问题,我也关注
#8
alphBlend函数我使用好了,
但是,好像这个函数不是让图片透明的哦
它只是将源图alpha后拷贝到目标图中,也就是说目标图中的图像比源图中的图象要淡一些,但并没有什么透明的效果啊
但是,好像这个函数不是让图片透明的哦
它只是将源图alpha后拷贝到目标图中,也就是说目标图中的图像比源图中的图象要淡一些,但并没有什么透明的效果啊
#9
最懒惰地办法是隔一个象素画一个自然就朦胧了!不信试试!这是我想出来地最简单办法!其他地就需要一些知识!
#10
我也没办法,我的可用分一直上不去
#11
你看一下这个程序,其中image2,image3 装入两个不同的.bmp图片
unit Unit1;
interface
uses
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.
unit Unit1;
interface
uses
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.
#12
谢谢各位,结帐
#1
图片也可以用 alphaBlend函数,其中参数“X”是控制透明度的程度
图片必须是.bmp格式
图片必须是.bmp格式
#2
不知道用bitblt是否可以实现?
就是使用copymode来控制
就是使用copymode来控制
#3
alphaBlend函数? 怎么用?
是api函数吗? 我只知道form有这个属性
是api函数吗? 我只知道form有这个属性
#4
是api函数,你查一下是api函数参考
#5
这个函数98下好象使不了吧!
#6
我使用了一下,没有出错,但是也没有任何效果出来
#7
你给的分太少了,这不是一个小问题,我也关注
#8
alphBlend函数我使用好了,
但是,好像这个函数不是让图片透明的哦
它只是将源图alpha后拷贝到目标图中,也就是说目标图中的图像比源图中的图象要淡一些,但并没有什么透明的效果啊
但是,好像这个函数不是让图片透明的哦
它只是将源图alpha后拷贝到目标图中,也就是说目标图中的图像比源图中的图象要淡一些,但并没有什么透明的效果啊
#9
最懒惰地办法是隔一个象素画一个自然就朦胧了!不信试试!这是我想出来地最简单办法!其他地就需要一些知识!
#10
我也没办法,我的可用分一直上不去
#11
你看一下这个程序,其中image2,image3 装入两个不同的.bmp图片
unit Unit1;
interface
uses
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.
unit Unit1;
interface
uses
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.
#12
谢谢各位,结帐