⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 light.frm

📁 计算面积公式源代码
💻 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 + -