VB6浮雕效果源代码


Private Sub Command1_Click()
Dim r2,g2,b2 As Integer
Dim r1,g1,b1 As Integer
Dim c1 As Long
Dim c2 As Long
Dim x0 As Integer
Dim y0 As Integer
Screen.MousePointer = 11 'mouse呈沙漏形状
For x0 = 1 To Picture1.Width - 2
For y0 = 1 To Picture2.Height - 2
c1 = Picture1.Point(x0,y0)
r1 = (c1 And &HFF)
g1 = (c1 And 62580) / 256
b1 = (c1 And &HFF0000) / 65536
'获得Picture1中指定点(x0,y0)的R、G、B分量值

c2 = Picture1.Point(x0 + 1,y0 + 1)
r2 = (c2 And &HFF)
g2 = (c2 And 62580) / 256
b2 = (c2 And &HFF0000) / 65536
'获得Picture1中与(x0,y0)点相邻的点的R、G、B分量值

r1 = Abs(r1 - r2 + 128)
g1 = Abs(g1 - g2 + 128)
b1 = Abs(b1 - b2 + 128)
If r1 > 255 Then r1 = 255
If r1 < 0 Then r1 = 0
If b1 > 255 Then b1 = 255
If b1 < 0 Then b1 = 0
If g1 > 255 Then g1 = 255
If g1 < 0 Then g1 = 0
'计算浮雕处理后的R、G、B分量值
Picture2.PSet (x0,y0),RGB(r1,b1)
'画出浮雕处理后的(x0,y0)
DoEvents
Next
Next
Screen.MousePointer = 0 '恢复mouse正常情况

End Sub

Private Sub Form_Load() Picture1.Picture = LoadPicture(App.Path + "/鸟.bmp")End Sub

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...