Private Sub Command1_Click()
setcolor Picture1
End Sub
Sub setcolor(ByVal pic As PictureBox)
Dim red As Long, green As Long, blue As Long
Dim x As Long, y As Long, Color As Long
For x = 0 To pic.Width
For y = 0 To pic.Height
Color = GetPixel(pic.hdc, x, y)
red = red + Color And &HFF
green = green + (Color And &HFF00&) \ &H100&
blue = blue + (Color And &HFF0000) \ &H10000
Next
Next
red = red / (pic.Width * pic.Height)
green = green / (pic.Width * pic.Height)
blue = blue / (pic.Width * pic.Height)
pic.Picture = LoadPicture("")
pic.BackColor = RGB(red, green, blue)
End Sub
Type RGBColor
r As Long
g As Long
b As Long
End Type
Dim MyColor(1 to 5) As Long
MyColor(1)=RGB(36,78,99)
MyColor(2)=RGB(231,30,35)
MyColor(3)=RGB(78,27,39)
MyColor(4)=RGB(26,49,5)
MyColor(5)=RGB(48,72,75)
'这里开始运算数据
Dim AllColor() As RGBColor,TempR As String,TempG As String,TempB As String
Redim AllColor(Lbound(MyColor) To Ubound(MyColor))
For X=Lbound(MyColor) To Ubound(MyColor)
AllColor(X).r=MyColor(X) Mod 256
AllColor(X).g=Fix(MyColor(X) / 256) Mod 256
AllColor(X).b=Fix(Fix(MyColor(X) / 256) /256)
If X=1 Then
TempR=AllColor(X).R
TempG=AllColor(X).G
TempB=AllColor(X).B
Else
TempR=TempR * AllColor(X).R
TempG=TempG * AllColor(X).G
TempB=TempB * AllColor(X).B
End If
Next X
TempR=Fix(TempR/Ubound(MyColor))
TempG=Fix(TempG/Ubound(MyColor))
TempB=Fix(TempB/Ubound(MyColor))