怎么样把一副BMP图象的背景色清除。 (100分)

用PHOTOSHOP除掉背景,存为一张GIF图,与原图轮流交换不就搞定了,哈哈。。。
 
改变CopyMode属性进行复制
 
使用Mask的方法:
制作两张图:屏蔽图,原图。
运用CopyRect函数:
第一次使用CopyMode:=cmSrcAnd属性进行复制屏蔽图
第二次使用CopyMode:=cmSrcPaint属性进行复制原图。
注意:屏蔽图背景白色,内容黑色。原图背景黑色。
 
TransparentColor:= clTeal;
Transparent:=true;
TransparentMode:=tmAuto;
 
BrushCopy才素王道```

楼主看我怎么样把白色和蓝色作为背景色去掉```

procedure TForm1.Button5Click(Sender: TObject);
var
b: TBitmap;
c: TBitmap;
begin
b := TBitmap.Create;
c := TBitmap.Create;
try
b.Width := 100;
b.Height := 100;
c.Width := 100;
c.Height := 100;
b.Canvas.Brush.Color := clWhite;
b.Canvas.FillRect(Rect(0, 0, 100, 100));
b.Canvas.Brush.Color := clRed;
b.Canvas.FillRect(Rect(0, 0, 20, 20));
b.Canvas.Brush.Color := clBlue;
b.Canvas.FillRect(Rect(20, 20, 40, 40));
b.Canvas.Brush.Color := clGreen;
b.Canvas.FillRect(Rect(40, 40, 60, 60));
// 生成一张背景色为白色、蓝色,前景为红色,绿色色块的Bitmap,并在Canvas上
// 画出示例
Canvas.Draw(0, 0, b);
// 在中介c上把白色替换成中介透明色——紫色
c.Canvas.Brush.Color := clFuchsia;
c.Canvas.BrushCopy(Rect(0, 0, 100, 100), b, Rect(0, 0, 100, 100), clWhite);
// 画回到b上
b.Canvas.Draw(0, 0, c);
// 在中介c上把蓝色替换成中介透明色——紫色
c.Canvas.BrushCopy(Rect(0, 0, 100, 100), b, Rect(0, 0, 100, 100), clBlue);
// 在Canvas上画出c示例,此时将中介透明色——紫色,替换为“透明”
Canvas.Brush.Style := bsClear;
Canvas.BrushCopy(Rect(100, 0, 200, 100), c, Rect(0, 0, 100, 100), clFuchsia);
finally
b.Free;
c.Free;
end;
end;
 
有谁知道这个问题的解决方法吗?
是关于jpg图片和gif图像合并,并生成一张新的jpg图片,jpg图片为背景,gif图片为前景(即gif图片在jpg图片的上面),而且gif图片本来的背景是透明的我用一般的图像合并方法重绘后,gif图片这块的背景变成白的了,谁知道怎么解决?

我要达到的图片效果是:http://www.yeagen.com/other/yes.jpg
而现在我只能达到的效果是:http://www.yeagen.com/other/no.jpg

问题原文:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2575718
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
1K
import
I
I
回复
0
查看
721
import
I
顶部