Private Sub setControls()
gpbRotate = New GroupBox
gpbRotate.Location = New Point(0, 0)
gpbRotate.Size = New Size(300, 50)
gpbRotate.Text = "Rotate"
gpbFlip = New GroupBox
gpbFlip.Location = New Point(300, 0)
gpbFlip.Size = New Size(300, 50)
gpbFlip.Text = "Flip"
rbnRotNone = fncRadBtns("None", "None", 50, 10, 20)
rbnFlipNone = fncRadBtns("None", "None", 50, 10, 20)
rbnRotX = fncRadBtns("90 deg", "90", 70, 80, 20)
rbnRotY = fncRadBtns("180 deg", "180", 70, 150, 20)
rbnRotXY = fncRadBtns("270 deg", "270", 70, 220, 20)
rbnFlip90 = fncRadBtns("X - axis", "X", 70, 80, 20)
rbnFlip180 = fncRadBtns("Y - axis", "Y", 70, 150, 20)
rbnFlip270 = fncRadBtns("XY - axis", "XY", 70, 220, 20)
rbnRotNone.Checked = True
rbnFlipNone.Checked = True
btnTransform = New Button
btnTransform.Text = "Transform Image"
btnTransform.Location = New Point(0, 65)
btnTransform.Width = 100
btnOrg = New Button
btnOrg.Text = "Original Position"
btnOrg.Location = New Point(200, 65)
btnOrg.Width = 100
lblPicMode = New Label
lblPicMode.Text = "Picture Mode "
lblPicMode.Location = New Point(350, 67)
lblPicMode.Width = 70
cmbPicMode = New ComboBox
cmbPicMode.Location = New Point(420, 65)
cmbPicMode.DropDownStyle = ComboBoxStyle.DropDownList
cmbPicMode.Items.Add("Auto Size")
cmbPicMode.Items.Add("Center Image")
cmbPicMode.Items.Add("Normal")
cmbPicMode.Items.Add("Stretch Image")
cmbPicMode.SelectedIndex = 2
pbxImg = New PictureBox
pbxImg.Location = New Point(0, 100)
pbxImg.Size = New Size(750, 400)
stbBtm = New StatusBar
stbBtm.Text = "Normal mode - Image is clipped if it is bigger than the Picture" & _
"Box."
stbBtm.BackColor = Color.Green
stbBtm.Size = New Size(750, 20)
stbBtm.Location = New Point(0, 550)
gpbRotate.Controls.Add(rbnRotNone)
gpbRotate.Controls.Add(rbnRotX)
gpbRotate.Controls.Add(rbnRotY)
gpbRotate.Controls.Add(rbnRotXY)
gpbFlip.Controls.Add(rbnFlipNone)
gpbFlip.Controls.Add(rbnFlip90)
gpbFlip.Controls.Add(rbnFlip180)
gpbFlip.Controls.Add(rbnFlip270)
pnlTop.Controls.Add(gpbRotate)
pnlTop.Controls.Add(gpbFlip)
pnlTop.Controls.Add(btnTransform)
pnlTop.Controls.Add(btnOrg)
pnlTop.Controls.Add(lblPicMode)
pnlTop.Controls.Add(cmbPicMode)
Controls.Add(stbBtm)
pnlTop.Controls.Add(pbxImg)
blnPicLoaded = False
strStatus = stbBtm.Text
End Sub
Private Function fncRadBtns(ByVal strText As [String], ByVal strName As _
[String], ByVal intWidth As Integer, ByVal intX As Integer, ByVal intY As _
Integer) As RadioButton
Dim rbnTmp As RadioButton
rbnTmp = New RadioButton
rbnTmp.Text = strText
rbnTmp.Name = strName
rbnTmp.Width = intWidth
rbnTmp.Location = New Point(intX, intY)
Return rbnTmp
End Function Private Sub fncOpen(ByVal obj As Object, ByVal ea As EventArgs) ' load the
' picture.
Try
dlgFile = New OpenFileDialog
dlgFile.Filter = "JPEG Images (*.jpg,*.jpeg)|*.jpg;*.jpeg|Gif Images (" & _
"*.gif)|*.gif|Bitmaps (*.bmp)|*.bmp"
dlgFile.FilterIndex = 1
If dlgFile.ShowDialog() = DialogResult.OK Then
If Not ((stm <<= dlgFile.OpenFile()) Is Nothing) Then 'ToDo: Unsupported
' feature: assignment within expression. "=" changed to "<="
strImgName = dlgFile.FileName
stm.Close()
pbxImg.Image = Image.FromFile(strImgName)
blnPicLoaded = True
End If
End If
If blnPicLoaded Then ' if the picture is loaded then enable the events.
AddHandler rbnRotNone.Click, AddressOf fncRot
AddHandler rbnRotX.Click, AddressOf fncRot
AddHandler rbnRotY.Click, AddressOf fncRot
AddHandler rbnRotXY.Click, AddressOf fncRot
AddHandler rbnFlipNone.Click, AddressOf fncFlip
AddHandler rbnFlip90.Click, AddressOf fncFlip
AddHandler rbnFlip180.Click, AddressOf fncFlip
AddHandler rbnFlip270.Click, AddressOf fncFlip
AddHandler btnTransform.Click, AddressOf fncTransform
AddHandler btnOrg.Click, AddressOf fncTransform
AddHandler cmbPicMode.SelectionChangeCommitted, AddressOf fncPicMode
End If
Catch e As Exception
Console.WriteLine(e.StackTrace)
End Try
End Sub |