请教如何在BMP或JPG图片中加入文字,文字的背影要求透明的. ( 积分: 100 )

  • 主题发起人 主题发起人 pcmagic
  • 开始时间 开始时间
P

pcmagic

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TEXTOUT(RECT,x,y,'test');
背影没有透明.
 
我用TEXTOUT(RECT,x,y,'test');
背影没有透明.
 
如image1:Timage;
没必要用API,直接如下就可以了

image1.Canvas.Brush.Style:=bsClear;
image1.Canvas.TextOut(30,30,'aaa');
 
怎么啦, 不是用 DrawText 就行了吗,
canvas.brush.style:=bsClear
drawText(....)
 
如上所讲。。。

以下就在stringgrid中差入图片,并在图片上画出字来。。。
-----------------------------------------------------
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol=1) and (ARow=1) then begin
StringGrid1.Canvas.Brush.Style :=bsClear;//字的背景为透明
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.Brush.Color :=clBlue;
StringGrid1.Canvas.Brush.Style :=bsClear;

StringGrid1.Canvas.Draw(Rect.Left ,Rect.Top ,Image1.Picture.Graphic );//插入 图片
StringGrid1.Canvas.Font.Color :=clRed;
StringGrid1.Canvas.Font.Size :=8;

StringGrid1.Canvas.TextOut(Rect.Left +4,Rect.Top +8,'你好');

end;
end;
 
为什么不结账.OK
 
这个我做过不过扔了
是这样做的用一个image,放图片,上面入一个LABEL设置成透明,LABEL可以动态移动
设置好后可以把这个做成一个批处理,也就是打开文件就放到IMAGE中,LABEL中放字,完了后再抓图保存就行了
 
其实这样也可以实现的:

//图片上显示透明的文字
procedure TForm1.Button1Click(Sender: TObject);
var
bitBuf:TBitmap;
begin
bitBuf:=TBitmap.Create;
bitbuf.LoadFromFile('./背景.bmp'); //高手请指点:不知道为什么,如果这里不载入张图片,直接在bitbuf上绘制图形,就是显示不出来啊。
form1.Canvas.Draw(0,0,bitbuf);

bitbuf.Transparent:=true;
bitbuf.TransparentColor:=$ffffff; //文字显示透明,由于输出的是白色背景字符
bitbuf.Canvas.font.color:=$00ffff; //文字颜色
bitbuf.Canvas.TextOut(10,10,'这样就是透明的字了!');

form1.Canvas.Draw(0,0,bitbuf);
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
794
import
I
I
回复
0
查看
641
import
I
后退
顶部