回 帖 发 新 帖 刷新版面

主题:[原创]介绍一种用代码制作大型空心字的方法

介绍一种用代码制作大型空心字的方法

  笔者所说的空心字,是指笔划边缘颜色保持不变,而将字符笔划内部“掏空”,填上另一种颜色。
  可以有多种方法达到这个要求。但笔者这种方法是自动的,不需要人工干预,非常简单实用。
  思路:首先把最大的粗体72号字(使用72号字的原因是考虑到如果以后要放大,那么这个字号的锯齿边比较轻微)用某种颜色(例如红色)打印到图片框上,再逐个取点判断:如果该点的前后上下四个点都为红色,则可断定该点位于笔划内部,属于要“掏空”的点,那么就对该点做一个标记(不能直接更换颜色,因为更换颜色以后,下一个点的判断就不对了),最后再逐点检查标记,把凡是有标记的点更换颜色。
  代码如下:

Option Explicit

Private Sub Form_Load()
Picture1.Font.Size = 72: Picture1.Font.Bold = True
Picture1.ForeColor = vbRed: Picture1.AutoRedraw = True
Picture1.Visible = False: Picture1.ScaleMode = 3: Me.ScaleMode = 3
Me.WindowState = 2
End Sub

Private Sub Form_Click()
Dim st As String, z As String, r() As Boolean, r1 As Long
Dim w As Integer, h As Integer, x As Integer, y As Integer
Dim i As Integer, J As Integer, k As Integer

st = "新年好"
w = Picture1.TextWidth(st): h = Picture1.TextHeight(st)
Picture1.Move 0, 0, w, h
Picture1.CurrentX = x: Picture1.CurrentY = y: Picture1.Print st

ReDim r(1 To w, 1 To h)

For i = 1 To w '按行列取点,如果该点与左右上下四点的颜色相同,则标记该点
  For J = 1 To h
    r1 = Picture1.Point(i, J)
    If r1 = vbRed Then r(i, J) = (Picture1.Point(i - 1, J) = r1 And Picture1.Point(i + 1, J) = r1 And Picture1.Point(i, J - 1) = r1 And Picture1.Point(i, J + 1) = r1)
  Next
Next

For i = 1 To w '如果某一点做了标记,则修改为白色
  For J = 1 To h
    If r(i, J) Then Picture1.PSet (i, J), vbWhite
  Next
Next

Picture1.Picture = Picture1.Image
PaintPicture Picture1, 0, 40, w * 3, h * 3 '放大3倍复制到窗体
End Sub


  如果你觉得笔划还要加粗,那么可将有关代码修改如下:

st = "新年好": k = 6
w = Picture1.TextWidth(st) + (k + 1) * Len(st): h = Picture1.TextHeight(st) + k
Picture1.Move 0, 0, w, h

For i = 1 To Len(st) '逐个打印,并加粗笔划
  z = Mid(st, i, 1)
  For J = 1 To k
    Picture1.CurrentX = x: Picture1.CurrentY = y: Picture1.Print z
    x = x + 1: y = y + 1
  Next
  x = x + Picture1.TextWidth(z): y = 0
Next

ReDim r(1 To w, 1 To h)


2009.02.06

回复列表 (共6个回复)

沙发

看帖回帖^_^

板凳

不是的啊,是要打印空心正方形,是根据用户输入的书来决定正方形的大小,而且边框是用*来代替的,不是实线,请快点发过来,我在考试,现在急用…

3 楼

[url=http://www.newhotshoes.com]Christian louboutin [/url]
[url=http://www.newhotshoes.com/]christian louboutin sale[/url]
[url=http://www.newhotshoes.com/christian-louboutin-news-2010-c-54.html]christian louboutin shoes[/url]
[url=http://www.newhotshoes.com/]sale christian louboutin[/url]
[url=http://www.usachristianlouboutin.com/]Christian louboutin [/url]
[url=http://www.usachristianlouboutin.com/]christian louboutin discount[/url]
[url=http://www.usachristianlouboutin.com/]Christian Louboutin Pumps[/url]
[url=http://www.newhotshoesaleristian-louboutin-dorsays-c-52.html]Christian Louboutin d'Orsays[/url]
[url=http://www.newhotshoes.com/]Christian Louboutin Boots[/url]
[url=http://www.usachristianlouboutin.com/]Christian Louboutin Pumps[/url]
[url=http://www.newhotshoes.com/christian-louboutin-sandals-c-40.html]Christian Louboutin Sandals[/url]
[url=http://www.newhotshoes.com/christian-louboutin-shoes-c-38.html]Christian Louboutin Shoes[/url]
[url=http://www.usachristianlouboutin.com]Christian Louboutin Slingback[/url]
[url=http://www.newhotshoes.com/christian-louboutin-wedges-c-39.html]Christian Louboutin Wedges[/url]
[url=http://www.newhotshoes.com/giuseppe-zanotti-shoes-c-53.html]Giuseppe Zanotti Shoes[/url]
[url=http://www.usachristianlouboutin.com/jimmy-choo-shoes-c-41.html]Jimmy Choo Shoes[/url]
[url=http://www.newhotshoes.com/manolo-blahnik-c-43.html]Manolo Blahnik[/url]
[url=http://www.newhotshoes.com/manolo-blahnik-boots-c-46.html]Manolo Blahnik Boots[/url]
[url=http://www.newhotshoes.com/manolo-blahnik-slingback-c-47.html]Manolo Blahnik slingback[/url]
[url=http://www.newhotshoes.com/sergio-rossi-c-55.html]Sergio Rossi[/url]
[url=http://www.newhotshoes.com/yves-saint-laurent-c-42.html]Yves Saint Laurent[/url]
[url=http://www.newhotshoes.com/alexander-wang-c-56.html]Alexander Wang [/url]


Why do women love [URL=http://www.usachristianlouboutin.com/]christian louboutin [/URL]PUMPS? Why obsession the world of [URL=http://www.usachristianlouboutin.com]christian louboutin discount[/URL]pumps?  Perhaps because christian louboutin shoes shaped women's posture; perhaps because
[URL=http://www.newhotshoes.com]christian louboutin shoes[/URL] given women the magic of rebirth.you may choose christian louboutin!!!!


4 楼

玩农场,玩游戏,不如来玩能赚钱的农场:
全国首创巨大的偷菜赚钱,寻宝赚钱..等等
两类玩家--推广员和免费的玩家
永久免费--任何一个玩家免费玩
寻宝系统--每日10万元现金分享
魔法系统--结出金锭兑现现金
结婚系统--相互关爱,体验爱情
养育系统--上线拥有孩子打招呼
聊天系统--独一无二的聊天系统
届时欢迎团队领导人,抢占高位,抢占先机..
了解没损失,选择很重要,赚钱有方法
 联络QQ908889846  
 http://www.thxt999.com/Member.asp?u_id=cdc666
免费玩奇迹农场:首先打开摩客奇迹农场官方游戏网站.   http://www.ga-me.hk/ 点马上注册.  ID号码是六位数以上的字母和数字组合的都可以.推广员ID号写我的ID cdc666

5 楼

C易特元亨QQ919169870
最新互助式项目。
这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网赚取6000元出局。
B网就多了。
详情了解加QQ919169870 
  http://blog.sina.com.cn/s/blog_6b19ec920100liv6.html
C易特奖励制度 
http://blog.sina.com.cn/cyite6
C易特更多资料博客

6 楼

C易特元亨QQ919169870
最新互助式项目。
这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网赚取6000元出局。
B网就多了。
详情了解加QQ919169870 
  http://blog.sina.com.cn/s/blog_6b19ec920100liv6.html
C易特奖励制度 [url=http://www.zydna.com]亲子鉴定[/url]
http://blog.sina.com.cn/cyite6
C易特更多资料博客

我来回复

您尚未登录,请登录后再回复。点此登录或注册