Foxtable(狐表)用户栏目专家坐堂 → 绘图添加文字背景留白


  共有4255人关注过本帖树形打印复制链接

主题:绘图添加文字背景留白

帅哥哟,离线,有人找我吗?
qaz17909
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
绘图添加文字背景留白  发帖心情 Post By:2021/4/10 22:33:00 [只看该作者]

用窗口绘图,想在一个有颜色的背景图片上添加文字,因为背景的颜色不固定,所以希望添加文字的时候可以将文字区域部分留白然后再添加,应如何实现。如果先绘制一个空白区域,然后再添加文字,就是前面的空白区域无法根据文字的多少调整宽度。
Dim p As WinForm.Painter = e.Form.Controls("Painter1")
Dim g As Graphics = p.Graphics
g.FillRectangle(Brushes.Red,0,0,200,200)
p.Repaint()
Dim fnt As New Font("宋体",16)
Dim msg As String = "I Like Foxtable"
g.DrawString(msg,fnt,Brushes.green,10,10)
p.Repaint()

图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/11 20:39:00 [只看该作者]

计算文字需要绘制的大小

Dim p As WinForm.Painter = e.Form.Controls("Painter1")
Dim g As Graphics = p.Graphics
Dim fnt As New Font("宋体",16)
Dim msg As String = "I Like Foxtable"
dim w as integer = 100 '需要绘制的宽度
Dim size As Object
size = g.MeasureString(msg, fnt, w)
Dim h As Integer = size.height ‘获取绘制指定字体和宽度的情况下需要的高度
g.FillRectangle(Brushes.Red,0,0,w+10,h+10
g.DrawString(msg,fnt,Brushes.green,10,10)
p.Repaint()

 回到顶部
帅哥哟,离线,有人找我吗?
qaz17909
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/12 11:20:00 [只看该作者]

这个好像无法达到根据字符宽度调节底板空白宽度的目的,不同字符宽度都一样,高度是可以自动调节了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 11:33:00 [只看该作者]

只能是固定一个宽度,然后动态计算高度

 回到顶部
帅哥哟,离线,有人找我吗?
qaz17909
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/12 11:38:00 [只看该作者]

可否固定高度,调整宽度

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 11:52:00 [只看该作者]

不能

 回到顶部
帅哥哟,离线,有人找我吗?
qaz17909
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/20 22:50:00 [只看该作者]

还有个问题,用

Dim p As WinForm.Painter = e.Form.Controls("Painter1")
Dim
g As Graphics = p.Graphics
Dim
fnt As New Font("宋体",16)
Dim
msg As String = "I Like Foxtable"
g.DrawString(msg,fnt,Brushes.Red,10,10)
p.Repaint()

给背景图片添加文字后然后用p.save()将其保存为图片后,发现添加的文字变模糊了,是不是整个图分辨率下降了,这个有什么办法能保存保持清晰度呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:绘图.rar





 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/20 23:04:00 [只看该作者]

保存为bmp格式文件

 回到顶部
帅哥哟,离线,有人找我吗?
qaz17909
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/21 9:06:00 [只看该作者]

生成图片报表的时候,还是变模糊了。见示例。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:绘图.rar



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/21 9:21:00 [只看该作者]

这个不是绘图的问题。是专业报表本身的问题,这个没有办法。

如果要在专业报表里使用,可以考虑直接在专业报表里绘制内容,不需要绘图板:http://www.foxtable.com/webhelp/topics/1232.htm
[此贴子已经被作者于2021/4/21 9:22:13编辑过]

 回到顶部
总数 23 1 2 3 下一页