请问若使用textout(),如何在一张图片上输出半透明的文字?

firewill 2008-03-11 02:47:35
搜索了论坛上的帖子,发现大家都是讨论TextOut文字背景透明的问题。我现在想调整TextOut文字的透明度,使输出的文字本身半透明,可透出文字下面的背景内容。请问如何实现?多谢!!!
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
接分先!
etomahawk 2008-03-16
  • 打赏
  • 举报
回复
这个不难啊。要不了一个小时就可以搞定。

var
bmpTmp: TBitmap;
strTmp: String;
iRow, iCol: Integer;
begin
Image1.Picture.LoadFormFile('C:\test.bmp');
strTmp:= '输出文字';
bmpTmp:= TBitmap.Create;
try
bmpTmp.Font.Name := 'Arial';
bmpTmp.Font.Size := 12;
bmpTmp.Font.Color:= clRed;

bmpTmp.PixelFormat:= pf24bit;

bmpTmp.Width := bmpTmp.TextHeight(strTmp);
bmpTmp.Height:= bmpTmp.TextWidth(strTmp);

bmpTmp.TextOut(0, 0, strTmp);

//逐个点进行Alpha混合, Alpha混合的代码上网上找吧
//bmpTmp和Image1.Picture.Bitmap进行混合
//省略....
finally
FreeAndNil(bmpTmp);
end;

//Image直接由SaveToFile的方法,可以直接保存到文件
Image1.Picture.SaveToFile('c:\b.bmp');
end;
firewill 2008-03-14
  • 打赏
  • 举报
回复
我突然发现我问的好像不太准确,应该是这样的:我需要用TextOut向一个已经读入一张图片的Image控件输出一些半透明文字,然后把这张加了文字的图片再保存一下。就好像是加个半透明文字水印似的。
firewill 2008-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 etomahawk 的回复:]
输出到临时的Bitmap上,然后跟目标进行Alpha混合。
[/Quote]

感谢您啊!可是这个对我稍微有点难了。您能给出一点代码吗?
etomahawk 2008-03-12
  • 打赏
  • 举报
回复
输出到临时的Bitmap上,然后跟目标进行Alpha混合。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧