台灣最大程式設計社群網站
線上人數
2070
 
會員總數:245894
討論主題:189492
歡迎您免費加入會員
討論區列表 >> VB6 >> 請問各位vb高手~~急>"<
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問各位vb高手~~急>"<
價值 : 50 QP  點閱數:1921 回應數:0
樓主

小威
門外漢
0 2
22 3
發送站內信

請問各位高手,因為我在不同背景下做對比,一個是馬賽克背景(很多不同色塊組成),另一個是一般背景(只有一種顏色)
我想讓他們的比例是相同的,譬如馬賽克背景調整卷軸到30%,一般背景也調整到30%,但因為我在馬賽克背景讓他的色差+-25,所以實際上雖然都是調到30%,但亮度(顏色)上其實是不相同的,大約差了10%,也就是說馬賽克背景調到30%,整体亮度(顏色)來說其實是等於一班背景的40%,所以我想請問大家有沒有什麼方法可以讓兩者亮度(顏色)顯現的比例是一樣的,或者平均是一樣的,拜託各位高手幫忙解惑一下,謝謝,感激不盡


Dim W As Long, H As Long, fontC As Byte, fontc1 As Byte
Private Sub Form_Load()
With Picture1
.BorderStyle = 0: .Appearance = 0
' .Height = 4650: .Width = 4650
W = .ScaleWidth \ 10: H = .ScaleHeight \ 10
End With
fontC = 1
HScroll1.Value = fontC

HScroll1.Max = 255
HScroll2.Max = 255
HScroll3.Max = 255
End Sub

Private Sub HScroll1_Change()
Dim X As Long, Y As Long
fontC = HScroll1.Value
HScroll1.Max = 255
Text1 = Round(fontC / 255 * 100) & "%"
DrawBlack fontC, fontC
End Sub

Sub DrawBlack(ByVal FontColor As Byte, ByVal BackColor As Byte)
Dim X As Long, Y As Long, I As Integer
Dim Max As Long, Min As Long
Dim WH As Long

Randomize
Picture1.AutoRedraw = True
If W > H Then WH = H Else WH = W
For X = 1 To 10 * (W / WH) * (H / WH)
For Y = 1 To 10 * (W / WH) * (H / WH)

'亂數產生馬賽克,顏色值為大方格色值~255
If BackColor > 128 Then
Max = BackColor
Min = BackColor - 25
Else
Max = BackColor + 25
Min = BackColor
End If
I = Int(Rnd * (Max - Min + 1)) + Min
Picture1.Line ((X - 1) * WH, (Y - 1) * WH)-(X * WH, Y * WH), RGB(I, I, I), BF

Next
Next
'繪製大方格
End Sub

Private Sub Picture2_Click()
Picture1.Line (W * 3, H * 3)-(W * 7, H * 7), RGB(FontColor, FontColor, FontColor), BF
Picture1.AutoRedraw = False
End Sub

'每個捲軸的最小值是0,最大值是255

'所有變數都要定義才能使用
'Option Explicit

Private Sub scrlLabel01Front_Change()
'定義顏色變數
Dim colorNumber As Integer
'算出顏色數值
colorNumber = frmColor.scrlLabel01Front.Value
'顯示比例
frmColor.txtLabel01Front.Text = Round(colorNumber / 255 * 100) & "%"
'改變Shape顏色
Call WhiteToBlack(colorNumber, 1)
End Sub

Private Sub WhiteToBlack(ByVal colorNumber As Integer, ByVal lblIndex As Integer)
'改變反向顏色碼
colorNumber = 255 - colorNumber
'判斷顏色數值並改變顏色
Picture2.BackColor = RGB(colorNumber, colorNumber, colorNumber)
End Sub


Private Sub BlackToWhite(ByVal colorNumber As Integer, ByVal lblIndex As Integer)
'判斷顏色數值並改變顏色

End Sub


Private Sub HScroll2_Change()
'定義顏色變數
Dim colorNumber As Integer
'算出顏色數值
colorNumber = frmColor.HScroll2.Value
'顯示比例
frmColor.Text2.Text = Round(colorNumber / 255 * 100) & "%"
'改變Shape顏色
Call BlackToWhite1(colorNumber, 2)

End Sub

'每個捲軸的最小值是0,最大值是255

'所有變數都要定義才能使用
'Option Explicit

Private Sub HScroll3_Change()
'定義顏色變數
Dim colorNumber As Integer
'算出顏色數值
colorNumber = frmColor.HScroll3.Value
'顯示比例
frmColor.Text3.Text = Round(colorNumber / 255 * 100) & "%"
'改變Shape顏色
Call WhiteToBlack2(colorNumber, 1)

End Sub

Private Sub WhiteToBlack2(ByVal colorNumber As Integer, ByVal lblIndex As Integer)
'改變反向顏色碼
colorNumber = 255 - colorNumber
'判斷顏色數值並改變顏色
Picture4.BackColor = RGB(colorNumber, colorNumber, colorNumber)

End Sub

Private Sub BlackToWhite1(ByVal colorNumber As Integer, ByVal lblIndex As Integer)

'判斷顏色數值並改變顏色
Picture3.BackColor = RGB(colorNumber, colorNumber, colorNumber)
End Sub

搜尋相關Tags的文章: [ vb關於背景的問題 ] ,
本篇文章發表於2006-04-26 22:45
目前尚無任何回覆
   

回覆
如要回應,請先登入.