線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2089
推到 Plurk!
推到 Facebook!

如何將TImage完全透明化

答題得分者是:william
soya
一般會員


發表:2
回覆:3
積分:1
註冊:2002-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-04 16:42:02 IP:211.72.xxx.xxx 未訂閱
在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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-04 17:07:43 IP:147.8.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-04 17:24:03 IP:211.74.xxx.xxx 未訂閱
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
系統時間:2024-07-01 20:53:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!