图片反色VB源代码
Private Declare Function GetPixel Lib "GDI32" (ByVal hDC As Long, ByVal nxpos As Long,
ByVal nypos As Long) As Long
Private Declare Function SetPixel Lib "GDI32" (ByVal hDC As Long, ByVal X As Long, ByVal Y
As Long, ByVal colorref As Long) As Long Public Selectx1
Public Selecty1
Public Selectx2
Public Selecty2
Public Quchu_Beijin As Long
Public Function large(ByVal a, ByVal b) large = a
If a > b Then large = a
If b > a Then large = b
End Function
'图像显示属性,短的设定
Public Function small(ByVal a, ByVal b) small = a
If a < b Then small = a
If b < a Then small = b
End Function
Private Sub Command1_Click()
'Form2.Label1.Caption = "反色操作"
chu_li ("fanse")
End Sub
Public Sub chu_li(suan_fa$)
Dim xxx, xwidth, yyy, yheight, maxval, ly, curval, hh, xx, yy
Dim c1, c2, r1, g1, b1, r2, g2, b2, rr, gg, bb, void, setr1, setg1, setb1
setr1 = (Quchu_Beijin And &HFF)
setg1 = (Quchu_Beijin And 65280) / 256 setb1 = (Quchu_Beijin And &HFF0000) / 65536 'Screen.MousePointer = 11
Picture1.PaintPicture Form1.Picture1.Image, 0, 0, , , 0, 0, Form1.Picture1.Width,
Form1.Picture1.Height, &HCC0020
'Form6.Visible = True
If Selected = 1 Then
xxx = small(Selectx1, Selectx2)
xwidth = Abs(Selectx2 - Selectx1) yyy = small(Selecty1, Selecty2)
yheight = Abs(Selecty2 - Selecty1) maxval = xwidth + 1
ly = large(Selecty1, Selecty2)
'Form6.HScroll1.Max = maxval
curval = 0
hh = Int(maxval / 30) + 1
For xx = xxx To large(Selectx1, Selectx2) For yy = yyy To ly
''''''''''''''''''''''''''''''
Select Case suan_fa$
Case "fanse"
c1 = GetPixel(Form5.Picture1.hDC, xx, yy) r1 = (c1 And &HFF)
g1 = (c1 And 65280) / 256
b1 = (c1 And &HFF0000) / 65536
rr = 256 - r1
gg = 256 - g1
bb = 256 - b1
void = SetPixel(Form1.Picture1.hDC, xx, yy, RGB(rr, gg, bb))
End Select
'''''''''''''''''''''''''''''''
Next yy
curval = curval + 1
If curval / hh = Int(curval / hh) Then Form6.HScroll1.Value = curval
Next xx
Form1.Picture1.Refresh
End If
If Selected = 0 Then
maxval = Form1.Picture1.Width + 1 hh = Int(maxval / 30) + 1 ly = Form1.Picture1.Height 'Form6.HScroll1.Max = maxval curval = 0
For xx = 1 To Form1.Picture1.Width For yy = 1 To ly
''''''''''''''''
Select Case suan_fa$
Case "fanse"
c1 = GetPixel(Picture1.hDC, xx, yy) r1 = (c1 And &HFF)
g1 = (c1 And 65280) / 256 b1 = (c1 And &HFF0000) / 65536 rr = 256 - r1
gg = 256 - g1
bb = 256 - b1
void = SetPixel(Form1.Picture1.hDC, xx, yy, RGB(rr, gg, bb))
End Select
''''''''''''''''''
Next yy
curval = curval + 1
'If curval / hh = Int(curval / hh) Then Form6.HScroll1.Value = curval
Next xx
Form1.Picture1.Refresh
End If
Form6.Visible = False
Screen.MousePointer = 0
End Sub