procedure TForm1.Button1Click(Sender: TObject);
var
bf:_BLENDFUNCTION;
begin
Image1.Picture.Bitmap.PixelFormat:=pf24bit;
Image2.Picture.Bitmap.PixelFormat:=pf24bit; //bf.BlendOp:=AC_SRC_ALPHA ;
bf.BlendOp:=AC_SRC_OVER;
bf.BlendFlags:=0;
bf.SourceConstantAlpha:=$9f;
bf.AlphaFormat:=0; windows.AlphaBlend(image1.Canvas.Handle,0,0,50,50,image2.Canvas.Handle,0,0,50,50,bf);当Image1为黑白图像的时候可以实现半透明,但是当Image1和Image2为彩色图片时没有反应,我是将Image1弄成蓝色矩形框,Image2为Lena的彩色bmp图片,为什么呀?
还有就是改成AlphaBlend(image2.Canvas.Handle,0,0,50,50,image1.Canvas.Handle,0,0,50,50,bf);也得不到效果,请问有解决办法吗?还是我哪弄错了
var
bf:_BLENDFUNCTION;
begin
Image1.Picture.Bitmap.PixelFormat:=pf24bit;
Image2.Picture.Bitmap.PixelFormat:=pf24bit; //bf.BlendOp:=AC_SRC_ALPHA ;
bf.BlendOp:=AC_SRC_OVER;
bf.BlendFlags:=0;
bf.SourceConstantAlpha:=$9f;
bf.AlphaFormat:=0; windows.AlphaBlend(image1.Canvas.Handle,0,0,50,50,image2.Canvas.Handle,0,0,50,50,bf);当Image1为黑白图像的时候可以实现半透明,但是当Image1和Image2为彩色图片时没有反应,我是将Image1弄成蓝色矩形框,Image2为Lena的彩色bmp图片,为什么呀?
还有就是改成AlphaBlend(image2.Canvas.Handle,0,0,50,50,image1.Canvas.Handle,0,0,50,50,bf);也得不到效果,请问有解决办法吗?还是我哪弄错了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货