求助:如何让图像A重叠在图像B上面时,A中的白色成为透明色,显示B的颜色???
解决方案 »
- 高分求解[如何在StringGrid中加上行字段和列行号] 最好加上实例代码
- 小弟有几个问题请教您!
- 怎样在DBGrid里给某一列(如第三列,仅一列)的第二行到第六行网格绘上绿色背景,因为我想一步操作实现复制\粘贴多个网格的数据
- 在suiStringGrid中的问题!!!
- ---------------------------个小问题!!!
- 如何用数组操作的方法对控件组操作?
- 请问 delphi 应用程序执行时需要哪些文件(比如运行时刻库等等)
- 推荐一下,那种手机好?
- 超级菜鸟问题,怎样让delphi的背景不是空的(居然能看见桌面??)?
- 如何在DBGrid中实现时间的yyyy-mm-dd
- 这样写代码运行正常,但为什么login窗口没出现呢??
- 关于dephi的语法
Image2.Picture.Bitmap.TransparentColor := clWhite;
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就完全变了,没有办法恢复。