如何將TImage完全透明化 |
答題得分者是:william
|
soya
一般會員 發表:2 回覆:3 積分:1 註冊:2002-10-09 發送簡訊給我 |
在TImage以TextOut方式將文字輸出至TImage上,Transparent為true時只有將TextOut的部分透明化
請問一下要如何作才能把其他留白邊的部分也一併透明化...感謝!!
測試程式如下:
procedure TForm1.Image1Click(Sender: TObject);
begin
with Image1 do begin
Align:= alClient;
Transparent:=true;
Canvas.Font.Size:=36;
Canvas.Font.Color:=clRed;
Canvas.TextOut(0, 0, '測試字串1');
Canvas.TextOut(0, 100, '測試字串2');
Transparent:=True;
end;
end; 加入以下這個程式也是一樣的效果...
var
Bmp:TBitmap;
begin
Bmp:=TBitmap.Create;
Bmp.Assign(Image1.Picture.Bitmap);
Bmp.TransparentColor := Bmp.canvas.pixels[0,0];
Bmp.TransparentMode := tmAuto;
Bmp.Transparent := true;
Image1.Picture.Assign(Bmp);
Bmp.free;
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
You need to fill the background first.
procedure TForm1.Image1Click(Sender: TObject); begin with Image1 do begin Align:= alClient; Transparent:=true; Canvas.Brush.Color := clWindow; Canvas.FillRect(Canvas.ClipRect); Canvas.Font.Size:=36; Canvas.Font.Color:=clRed; Canvas.TextOut(0, 0, '測試字串1'); Canvas.TextOut(0, 100, '測試字串2'); Transparent:=True; end; end; |
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
procedure TForm1.Image1Click(Sender: TObject); begin with Image1 do begin Align:= alClient; Transparent:=true; Canvas.Brush.Style:=bsClear; Canvas.Font.Size:=36; Canvas.Font.Color:=clRed; Canvas.TextOut(0, 0, '測試字串1'); Canvas.TextOut(0, 100, '測試字串2'); Transparent:=True; end; end;學而時習之不亦樂乎! 發表人 - jest0024 於 2004/05/04 17:27:19 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |