|
分類:[.NET 全般]
Public Class Form1
'線を消して再び画像を表示させるため Dim sImgPath As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim h, w As Integer 'ディスプレイの作業領域の高さ() h = System.Windows.Forms.Screen.GetWorkingArea(Me).Height 'ディスプレイの作業領域の幅 w = System.Windows.Forms.Screen.GetWorkingArea(Me).Width
Me.Width = w Me.Height = h
'ピクチャーボックスの大きさ PictureBox1.Width = w - 100 PictureBox1.Height = h - 100
'縦長はサイズをアレンジして、いっぱいで画面に入る PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
'不恰好だけど、ちゃんと画面に入る(使用不可) 'PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Sub
Private Sub picturebox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
Dim img As Image = PictureBox1.Image Dim g As Graphics = PictureBox1.CreateGraphics
'このIF文があると線が引けなくなる(わからない・・・)
'If PictureBox1.Image Is Nothing Then 'Else ' g = Graphics.FromImage(PictureBox1.Image) 'End If
If e.Button = MouseButtons.Left Then
g.FillEllipse(Brushes.Red, e.X, e.Y, 10, 10)
ElseIf e.Button = MouseButtons.Right Then
g.FillEllipse(Brushes.Blue, e.X, e.Y, 10, 10)
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'登録する
Dim hiritu Dim hirituh Dim penw As Integer Dim penh As Integer Dim img As Image = PictureBox1.Image
Dim sImgFile As String
' ' Year関数できょうの西暦年号を取得 Dim seireki As Integer = Year(Now)
' ' Month関数できょうの月を取得 Dim tsuki As Integer = Month(Now)
' ' day関数できょうの日を取得 Dim hi As Integer = _ Microsoft.VisualBasic.DateAndTime.Day(Now)
' ' Hour関数で現在の時を取得 Dim ji As Integer = Hour(Now)
' ' Minute関数で現在の分を取得 Dim hun As Integer = Minute(Now)
' ' Second関数で現在の秒を取得 Dim byou As Integer = Second(Now)
Dim fnt As New Font("MS ゴシック", 10)
hiritu = PictureBox1.Width / img.Width hirituh = PictureBox1.Height / img.Height penw = 3 / hiritu * 10 penh = 3 / hirituh * 10
If img.Width > img.Height Then
If img.Width > 2000 Then fnt = New Font("MS ゴシック", 48) ElseIf img.Width > 1500 Then fnt = New Font("MS ゴシック", 36) ElseIf img.Width > 1000 Then fnt = New Font("MS ゴシック", 24) ElseIf img.Width > 500 Then fnt = New Font("MS ゴシック", 12) ElseIf img.Width > 0 Then fnt = New Font("MS ゴシック", 10) End If End If
If img.Width = img.Height Then
If img.Width > 2000 Then fnt = New Font("MS ゴシック", 48) ElseIf img.Width > 1500 Then fnt = New Font("MS ゴシック", 36) ElseIf img.Width > 1000 Then fnt = New Font("MS ゴシック", 28) ElseIf img.Width > 500 Then fnt = New Font("MS ゴシック", 12) ElseIf img.Width > 0 Then fnt = New Font("MS ゴシック", 10) End If End If
If img.Width < img.Height Then If img.Height > 2000 Then fnt = New Font("MS ゴシック", 48) ElseIf img.Height > 1500 Then fnt = New Font("MS ゴシック", 36) ElseIf img.Height > 1000 Then fnt = New Font("MS ゴシック", 24) ElseIf img.Height > 500 Then fnt = New Font("MS ゴシック", 12) ElseIf img.Width > 0 Then fnt = New Font("MS ゴシック", 10) End If End If
Dim z As Graphics
z = Graphics.FromImage(PictureBox1.Image)
z.DrawString(seireki & "年" & tsuki & "月" & hi & "日" & ji & "時" & hun & "分", fnt, Brushes.Blue, 0, 0)
'PictureBox1.Image.Save("\\192.168.1.11\My Documents\登録画像\IMG_登録.JPG", System.Drawing.Imaging.ImageFormat.Jpeg) PictureBox1.Image.Save("C:\Documents and Settings\main\デスクトップ\完成してくれ.JPG", System.Drawing.Imaging.ImageFormat.Jpeg)
''sImgFile = "\\192.168.1.11\My Documents\登録画像\IMG_登録.JPG" sImgFile = "C:\Documents and Settings\main\デスクトップ\完成してくれ.JPG" ''sImgFile = "\\192.168.1.11\デスクトップ\IMG_登録.JPG"
If System.IO.File.Exists(sImgFile) Then System.IO.File.Delete(sImgFile) End If
PictureBox1.Image.Save(sImgFile, System.Drawing.Imaging.ImageFormat.Jpeg)
'クリアーする() Me.PictureBox1.Image.Dispose() End
End End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim ofd As New OpenFileDialog
With ofd 'タイトル .Title = "開くファイルを選択してください" '初期のファイル名 .FileName = "" 'フィルターの何番目を既定値にするか .FilterIndex = 1 'フィルター:ファイルの種類 .Filter = "画像ファイル名(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF" '初期のフォルダー .InitialDirectory = "C:\Documents and Settings\main\デスクトップ\" End With
'「ファイルを開く」ダイアログを表示。 If ofd.ShowDialog() = DialogResult.OK Then '選択されたファイルをピクチャーボックスに表示 sImgPath = ofd.FileName 'sImgFile = ofd.SafeFileName PictureBox1.Image = Image.FromFile(sImgPath) PictureBox1.ImageLocation = sImgPath 'PictureBox1.BorderStyle = BorderStyle.Fixed3D PictureBox1.BorderStyle = BorderStyle.None End If
ofd.Dispose() End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'クリアー処理 'PictureBox内の表示を消去する PictureBox1.Image = Nothing
'上記でもいいが下記の方法が MSDN でも紹介されています。 '最初にイメージによって使用されているメモリを解放してから、グラフィックを消去します With PictureBox1 If Not (.Image Is Nothing) Then .Image.Dispose() .Image = Nothing End If End With
'線だけを消して画像を表示させる PictureBox1.Image = Image.FromFile(sImgPath)
End Sub End Class
|