'我以前编的一个利用背景图生成立体文字程序,是否合用? '3个 PictureBox: 'Picture1:打印字体 'Picture2:图片,用来获取点(X,Y)上图象的颜色 'Picture3:合成效果Private Sub Command1_Click() Dim Xp As Single, Yp As Single Dim X As Single, Y As Single Picture1.Cls Picture1.ForeColor = vbBlack Picture1.Font = "黑体" Picture1.FontBold = True Picture1.FontSize = 100 Picture1.CurrentY = 100 Picture1.Print "程序员" Picture1.ScaleMode = 3 Picture2.ScaleMode = 3 Picture3.ScaleMode = 3 ' Picture2.Picture=loadpicture("") Set Picture3.Picture = Picture2.Picture
For Xp = 1 To Picture1.Width For Yp = Picture1.Height To 1 Step -1 If Picture1.Point(Xp, Yp) = vbBlack Then Picture3.DrawWidth = 5 Picture3.PSet (Xp + 5, Yp + 5), vbBlack
Picture3.DrawWidth = 4 Picture3.PSet (Xp, Yp), Picture2.Point(Xp, Yp) End If Next DoEvents Next End Sub
如果把picture3的图像去掉,即 set Picture3.picture=nothing ,就会得到填充图形的立体文字
改进一下后面部分: Picture3.DrawWidth = 1 For Xp = 1 To Picture1.Width For Yp = Picture1.Height To 1 Step -1 If Picture1.Point(Xp, Yp) = vbBlack Then Picture3.PSet (Xp + 8, Yp + 8), vbBlack Picture3.PSet (Xp, Yp), Picture2.Point(Xp, Yp) End If Next ' DoEvents Next
'3个 PictureBox:
'Picture1:打印字体
'Picture2:图片,用来获取点(X,Y)上图象的颜色
'Picture3:合成效果Private Sub Command1_Click()
Dim Xp As Single, Yp As Single
Dim X As Single, Y As Single
Picture1.Cls
Picture1.ForeColor = vbBlack
Picture1.Font = "黑体"
Picture1.FontBold = True
Picture1.FontSize = 100
Picture1.CurrentY = 100
Picture1.Print "程序员"
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Picture3.ScaleMode = 3
' Picture2.Picture=loadpicture("")
Set Picture3.Picture = Picture2.Picture
For Xp = 1 To Picture1.Width
For Yp = Picture1.Height To 1 Step -1
If Picture1.Point(Xp, Yp) = vbBlack Then
Picture3.DrawWidth = 5
Picture3.PSet (Xp + 5, Yp + 5), vbBlack
Picture3.DrawWidth = 4
Picture3.PSet (Xp, Yp), Picture2.Point(Xp, Yp)
End If
Next
DoEvents
Next
End Sub
For Xp = 1 To Picture1.Width
For Yp = Picture1.Height To 1 Step -1
If Picture1.Point(Xp, Yp) = vbBlack Then
Picture3.PSet (Xp + 8, Yp + 8), vbBlack
Picture3.PSet (Xp, Yp), Picture2.Point(Xp, Yp)
End If
Next
' DoEvents
Next
但如果要真正得到Cool的效果是比较难的呀,绝不是几行代码就可以解决的.因为除了上面几位老兄说的问题,还存在反锯齿的问题.如果不考虑这个因素的话,文字的边缘应该是很恶心的.