Option Explicit On
Option Strict On
Public Class Form1
Private thePicBox As PictureBox
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
Dim name As String
Dim hsname() As String
For Each name In [Enum].GetNames(GetType(System.Drawing.Drawing2D.HatchStyle))
ListBox1.Items.Add(name)
Next name
ReDim hsname(ListBox1.Items.Count - 1)
For i = 0 To ListBox1.Items.Count - 1
hsname(i) = ListBox1.Items(i).ToString()
Next i
Array.Sort(hsname)
ListBox1.Items.Clear()
ListBox1.Items.AddRange(hsname)
ListBox1.SelectedIndex = 0
PictureBox1.Visible = True
PictureBox2.Visible = False
Button1.Text = "Draw"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim bmp As Bitmap
Dim g As Graphics
Dim colF As Color = Color.Black
Dim colB As Color = Color.White
Dim hs As System.Drawing.Drawing2D.HatchStyle
Dim dbrush As System.Drawing.Drawing2D.HatchBrush
thePicBox = PictureBox1
bmp = New Bitmap(thePicBox.Width, thePicBox.Height)
thePicBox.Image = bmp
g = Graphics.FromImage(thePicBox.Image)
hs = CType([Enum].Parse(GetType(System.Drawing.Drawing2D.HatchStyle), ListBox1.SelectedItem.ToString()), System.Drawing.Drawing2D.HatchStyle)
dbrush = New System.Drawing.Drawing2D.HatchBrush(hs, colF, colB)
g.FillRectangle(dbrush, 0, 0, thePicBox.Width, thePicBox.Height)
dbrush.Dispose()
g.Dispose()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Dim kpt As Integer = 1
Dim HSIZE As Integer = 88
Dim VSIZE As Integer = 31
Dim bmp As Bitmap
Dim g As Graphics
Dim dir As String = ""
Dim colB As Color
Dim colF As Color
Dim hs As System.Drawing.Drawing2D.HatchStyle
Dim dbrush As System.Drawing.Drawing2D.HatchBrush
Dim i As Integer
Dim j As Integer
Dim name As String
Dim fnameW As String
If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
dir = FolderBrowserDialog1.SelectedPath
End If
thePicBox = PictureBox2
thePicBox.Size = New Size(kpt * HSIZE, kpt * VSIZE)
bmp = New Bitmap(kpt * thePicBox.Width, kpt * thePicBox.Height)
thePicBox.Image = bmp
g = Graphics.FromImage(thePicBox.Image)
colB = ColorTranslator.FromHtml("#FFFFFF")
colF = ColorTranslator.FromHtml("#000000")
For i = 0 To ListBox1.Items.Count - 1
name = ListBox1.Items(i).ToString()
hs = CType([Enum].Parse(GetType(System.Drawing.Drawing2D.HatchStyle), name), System.Drawing.Drawing2D.HatchStyle)
dbrush = New System.Drawing.Drawing2D.HatchBrush(hs, colF, colB)
g.FillRectangle(dbrush, 0, 0, thePicBox.Width, thePicBox.Height)
dbrush.Dispose()
fnameW = dir & "\png0_" & name & ".png"
thePicBox.Image.Save(fnameW, System.Drawing.Imaging.ImageFormat.Png)
Next i
colB = ColorTranslator.FromHtml("#2F4F4F")
colF = ColorTranslator.FromHtml("#FFFFFF")
For i = 0 To ListBox1.Items.Count - 1
name = ListBox1.Items(i).ToString()
hs = CType([Enum].Parse(GetType(System.Drawing.Drawing2D.HatchStyle), name), System.Drawing.Drawing2D.HatchStyle)
dbrush = New System.Drawing.Drawing2D.HatchBrush(hs, colF, colB)
g.FillRectangle(dbrush, 0, 0, thePicBox.Width, thePicBox.Height)
dbrush.Dispose()
fnameW = dir & "\png1_" & name & ".png"
thePicBox.Image.Save(fnameW, System.Drawing.Imaging.ImageFormat.Png)
Next i
g.Dispose()
'htmlファイル出力
Dim sw As System.IO.StreamWriter
Dim patname0(ListBox1.Items.Count - 1) As String
Dim pngname0(ListBox1.Items.Count - 1) As String
Dim patname1(ListBox1.Items.Count - 1) As String
Dim pngname1(ListBox1.Items.Count - 1) As String
Dim fname As String
i = 0
j = 0
For Each fname In System.IO.Directory.GetFiles(dir, "*.png")
If fname.IndexOf("png0_") <> -1 Then
pngname0(i) = System.IO.Path.GetFileName(fname)
patname0(i) = (pngname0(i).Replace(".png", "")).Replace("png0_", "")
i = i + 1
End If
If fname.IndexOf("png1_") <> -1 Then
pngname1(j) = System.IO.Path.GetFileName(fname)
patname1(j) = (pngname1(j).Replace(".png", "")).Replace("png1_", "")
j = j + 1
End If
Next fname
fnameW = dir & "\subvbhatch.html"
sw = New System.IO.StreamWriter(fnameW, False, System.Text.Encoding.GetEncoding("shift-jis"))
sw.WriteLine("")
sw.WriteLine("
")
sw.WriteLine("VB & C# HatchStyle (模様で塗りつぶす)
")
'*******************************************************************
sw.WriteLine("前景色:Black(#000000),背景色:White(#FFFFFF)
")
'*******************************************************************
sw.WriteLine("")
For i = 1 To ListBox1.Items.Count Step 2
sw.WriteLine("")
sw.WriteLine("")
sw.WriteLine("")
sw.WriteLine(" | ")
sw.WriteLine("")
sw.WriteLine(patname0(i - 1))
sw.WriteLine(" | ")
sw.WriteLine("")
sw.WriteLine("")
sw.WriteLine(" | ")
sw.WriteLine("")
sw.WriteLine(patname0(i))
sw.WriteLine(" | ")
sw.WriteLine("
")
Next i
sw.WriteLine("
")
'*******************************************************************
sw.WriteLine("前景色:White(#FFFFFF),背景色:DarkSlateGray(#2F4F4F)
")
'*******************************************************************
sw.WriteLine("")
For i = 1 To ListBox1.Items.Count Step 2
sw.WriteLine("")
sw.WriteLine("")
sw.WriteLine("")
sw.WriteLine(" | ")
sw.WriteLine("")
sw.WriteLine(patname1(i - 1))
sw.WriteLine(" | ")
sw.WriteLine("")
sw.WriteLine("")
sw.WriteLine(" | ")
sw.WriteLine("")
sw.WriteLine(patname1(i))
sw.WriteLine(" | ")
sw.WriteLine("
")
Next i
sw.WriteLine("
")
'*******************************************************************
sw.WriteLine("")
sw.WriteLine("")
sw.Close()
'*******************************************************************
System.Threading.Thread.Sleep(1000) '1秒待つ
System.Diagnostics.Process.Start(fnameW)
End Sub
End Class