Image上添加文字

zwlwenlong 2007-09-19 08:36:22
有一张bmp或者jpg在Image上,想在一些位置标志一些数据,而且数据是动的,例如:在一个管子旁边标志他的实时流量.
解决方法1:用label显示数值,问题是:如果设置stretch为true;那么如果窗体的大小改变时,也就是图象放大或者缩小了,label的位置相对bmp上的一个点位置改变了.

解决方法2:用Canvas.TextOut,因为Canvas.TextOut是随着Image放大和缩小的.但是在文字下面有底色,如果设setbkmode(Image1.Canvas.Handle,transparent);这样没有了底色,这样的话,应该是一直在一个点上输出文字,而成了文字叠加,最后形成一个黑条.

第一和第二种方法如何解决?
...全文
567 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
我看你有戏 2007-12-27
  • 打赏
  • 举报
回复
Canvas.Brush.Bitmap := mybgpic;
Canvas.FillRect(Rect(0,0,600,100));

Canvas.Font.Size := 12;
Canvas.Font.style :=[fsbold] ;
Canvas.Font.Color:=rgb(255,0,0);
SetBkMode(Canvas.Handle,TRANSPARENT);//文字透明!
Canvas.TextOut(0,0,'输出的字符串。。。');


看看这个有用吗
ahjoe 2007-09-30
  • 打赏
  • 举报
回复
同样的问题我好象回复过。
whzxk 2007-09-28
  • 打赏
  • 举报
回复
1、首先创建Image_Back:TImage,把原图片复制一份
2、在Image_Back上写字
3、把写好字的内存图赋值给Image显示
4、Image_Back读取原来的图片
再重复2步骤
zwlwenlong 2007-09-23
  • 打赏
  • 举报
回复
用一个图片显示一个设备的示意图,然后标出一些管道等信息的实时信息,不知道到大家熟悉软控的组态图吧,暂时想的实现方式是用label标志出某一个管道的实时数据.但是如果image的strect设为true,在窗体放大缩小时,label相对某一个管子的位置就发生了变化,我想在image的窗体发生变化时,调整label的位置,这个调整的方法应该如何确定呢?
fhb 2007-09-23
  • 打赏
  • 举报
回复
可以使用组件
TCanvasText

http://www.codeidea.com/html/components.html
zwlwenlong 2007-09-20
  • 打赏
  • 举报
回复
如果用textout输出动态信息,而且还要设置他的位置很麻烦.决定用label代替!!
image 在stretch为true的情况下,如何保证label相对image上的一个点的位置不变呢?
dovelee 2007-09-19
  • 打赏
  • 举报
回复
把文字做到图片上
tongjisheng 2007-09-19
  • 打赏
  • 举报
回复
up
skertone 2007-09-19
  • 打赏
  • 举报
回复
第一次输出文字时要Copy出底色

每次画文字时都是在内存的一bmp 上先放上底再画字

然后再把这个bmp copy 到Canvas上去,

前提是你的底图不是动态的

如果底图是动态的

你只要在桌面用透明模式 Canvas上画文字,而不是你的图像或其窗口的Canvas...即可实现
zwlwenlong 2007-09-19
  • 打赏
  • 举报
回复
??

1,183

社区成员

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

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