如何使得图片(TImage)半透明显示? 想让图片有朦胧的感觉

searoom 2002-08-20 09:44:49
好像对form可以使用 alphaBlend属性,使用api函数也可以使得form透明

但对图片好像没找到什么好的方法
...全文
627 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
searoom 2002-08-21
  • 打赏
  • 举报
回复
谢谢各位,结帐
hanzq 2002-08-21
  • 打赏
  • 举报
回复
你看一下这个程序,其中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.
searoom 2002-08-20
  • 打赏
  • 举报
回复
alphBlend函数我使用好了,
但是,好像这个函数不是让图片透明的哦

它只是将源图alpha后拷贝到目标图中,也就是说目标图中的图像比源图中的图象要淡一些,但并没有什么透明的效果啊
xzhifei 2002-08-20
  • 打赏
  • 举报
回复
你给的分太少了,这不是一个小问题,我也关注
searoom 2002-08-20
  • 打赏
  • 举报
回复
我使用了一下,没有出错,但是也没有任何效果出来
haishen 2002-08-20
  • 打赏
  • 举报
回复
这个函数98下好象使不了吧!
hanzq 2002-08-20
  • 打赏
  • 举报
回复
是api函数,你查一下是api函数参考
searoom 2002-08-20
  • 打赏
  • 举报
回复
alphaBlend函数? 怎么用?

是api函数吗? 我只知道form有这个属性
searoom 2002-08-20
  • 打赏
  • 举报
回复
不知道用bitblt是否可以实现?

就是使用copymode来控制
hanzq 2002-08-20
  • 打赏
  • 举报
回复
图片也可以用 alphaBlend函数,其中参数“X”是控制透明度的程度
图片必须是.bmp格式
searoom 2002-08-20
  • 打赏
  • 举报
回复
我也没办法,我的可用分一直上不去
manboo 2002-08-20
  • 打赏
  • 举报
回复
最懒惰地办法是隔一个象素画一个自然就朦胧了!不信试试!这是我想出来地最简单办法!其他地就需要一些知识!

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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