📄 light.frm
字号:
VERSION 5.00
Begin VB.Form Form4
Caption = "灰度亮度"
ClientHeight = 2325
ClientLeft = 4590
ClientTop = 3885
ClientWidth = 3930
LinkTopic = "Form4"
ScaleHeight = 2325
ScaleWidth = 3930
Begin VB.CommandButton WCancel
Caption = "取 消"
Height = 300
Left = 2280
TabIndex = 7
Top = 1320
Width = 1215
End
Begin VB.CommandButton WProcess2
Caption = "图象处理"
Height = 300
Left = 2280
TabIndex = 6
Top = 1920
Width = 1215
End
Begin VB.Frame Frame2
Caption = "选择"
Height = 975
Left = 360
TabIndex = 3
Top = 1200
Width = 1455
Begin VB.OptionButton Option2
Caption = "减低亮度"
Height = 180
Left = 240
TabIndex = 5
Top = 600
Width = 1095
End
Begin VB.OptionButton Option1
Caption = "增加亮度"
Height = 180
Left = 240
TabIndex = 4
Top = 240
Width = 1095
End
End
Begin VB.Frame Frame1
Caption = "亮度值"
Height = 735
Left = 360
TabIndex = 0
Top = 240
Width = 3135
Begin VB.TextBox Text1
Height = 270
Left = 2160
MaxLength = 3
TabIndex = 1
Top = 360
Width = 735
End
Begin VB.Label Label1
Caption = "请输入数值(0-128):"
Height = 255
Left = 240
TabIndex = 2
Top = 360
Width = 1935
End
End
End
Attribute VB_Name = "Form4"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public LightValue As Integer
Public WSign As Integer
Private Sub Form_Load()
Option1.Enabled = True
Option2.Enabled = True
Option1.Value = False
Option2.Value = False
Text1.Text = ""
WSign = 1
LightValue = 0
End Sub
Private Sub Option1_Click()
WSign = 1
Option1.Value = True
Option2.Value = False
End Sub
Private Sub Option2_Click()
WSign = -1
Option2.Value = True
Option1.Value = False
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If ((KeyCode < 48) Or (KeyCode > 57)) And (KeyCode <> 13) Then
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
If KeyCode = 13 Then
If Val(Text1.Text) > 128 Then
MsgBox "请输入小于己于128的数字", vbExclamation, "提示"
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
LightValue = WSign * Val(Text1.Text)
End If
End Sub
Private Sub WCancel_Click()
Option1.Enabled = True
Option2.Enabled = True
Option1.Value = False
Option2.Value = False
Text1.Text = ""
WSign = 1
WProcess2.Enabled = False
End Sub
Private Sub WProcess2_Click()
Dim I, J As Integer
Dim R As Integer
Dim N As Integer '关于进度条的记数
Dim WSBmpDc As Long
Dim WSBmp As Long
If Val(Text1.Text) > 128 Then
MsgBox "请输入小于己于128的数字", vbExclamation, "提示"
Text1.Text = ""
Text1.SetFocus
WProcess2.Enabled = False
Exit Sub
Else
LightValue = WSign * Val(Text1.Text)
End If
Screen.MousePointer = 11 '显示鼠标为漏斗状
Form4.Hide
Form2.ProgressBar1.Min = 0 '进度条的情况
Form2.ProgressBar1.Max = Form1.WIPicture1.ScaleWidth
Form2.Show
Form2.Caption = "亮度正在处理..."
Form1.Enabled = False
Form2.ProgressBar1.Value = Form2.ProgressBar1.Min '进度条的情况
N = 0 '进度条初值
WSBmp = CreateCompatibleBitmap(Form1.WIPicture2.hdc, Form1.WIPicture2.ScaleWidth, Form1.WIPicture2.ScaleHeight)
WSBmpDc = CreateCompatibleDC(Form1.WIPicture2.hdc)
SelectObject WSBmpDc, WSBmp
BitBlt WSBmpDc, 0, 0, Form1.WIPicture2.ScaleWidth, Form1.WIPicture2.ScaleHeight, Form1.WIPicture2.hdc, 0, 0, &HCC0020
For I = 0 To Form1.WIPicture2.ScaleWidth - 1 '亮度
For J = 0 To Form1.WIPicture2.ScaleHeight - 1
R = WImage(0, I, J) + LightValue
If R < 0 Then R = 0
If R > 255 Then R = 255
SetPixel WSBmpDc, I, J, RGB(R, R, R)
Next J
N = N + 1
Form2.ProgressBar1.Value = N
DoEvents
Next I
BitBlt Form1.WIPicture2.hdc, 0, 0, Form1.WIPicture2.ScaleWidth - 1, Form1.WIPicture2.ScaleHeight - 1, WSBmpDc, 0, 0, &HCC0020
Form2.Hide
Form1.Enabled = True
Screen.MousePointer = 0 '鼠标恢复正常
'显示目的图像
DestX = 0: DestY = 0
Form1.WDHScrol.Value = 0: Form1.WDVScrol.Value = 0
Call DisplayPicture2(Form1.WDPicture, Form1.WIPicture2, Form1.WDHScrol, Form1.WDVScrol, Form1)
WSaveFileFlag = True '可以存盘的标志为真
Form1.Frame2.Caption = WDString & "(亮度)"
Form1.SetFocus
Call DeleteDC(WSBmpDc)
Call DeleteObject(WSBmp)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -