求助:如何让图像A重叠在图像B上面时,A中的白色成为透明色,显示B的颜色???

解决方案 »

  1.   

    Image2.Transparent := True;
      Image2.Picture.Bitmap.TransparentColor := clWhite;
      

  2.   

    对于Image控件来说,没有所谓的透明显示问题。尤其是两个Image重叠。
    Image控件完成的唯一功能就是显示图片,并提供对图片的操作。一个Image和另外一个Image没有相关性质。
    因此实现这个功能,你只有自己编代码来实现。
    实现方法:
    对于Image有一个Canvas属性,对Canvas进行操作:
    例如把最终结果显示到Image1上。当Image1和Image2完全重叠的时候,对Image1进行操作:
    with Image1.Canvas do
    for i:=0 to Image1.Width-1 do
    for j:=0 to Image1.Height-1 do
    begin
      if Pixels[i,j]=clWhite then  //如果i,j点为白色
      Pixels[i,j]:=Image2.Canvas.Pixels[i,j]
    end;
    操作后,Image1就完全变了,没有办法恢复。