tify"> w.Write (planes) число бітових плоскостей.Write (BitCount) «число бітів на піксель.Write (Compr)» спосіб упаковки 0 - отсутствует.Write (ISize) «розмір зображення. Write (XpM) »кількості точок на метр.Write (YpM)« кількості точок на метр.Write (CUsed) »кількості квітів іспользовано.Write (CImp) 'кількості кольорів потрібно
Запис даних з масиву в файл
Dim ax, ay As Int16i As Integer.Maximum=fHeight (TResol) ay=fHeight (TResol) - 1 To 0 Step - 1ax=0 To fWidth (TResol) - 1.Write (Mas2D ( ax, ay)) «R.Write (Mas2D (ax, ay))» G.Write (Mas2D (ax, ay)) 'B.Value=ay.Value=0.Close () закриття файлу .. Close ()
End Sub
Процедура завантаження даних з BMP файлу в масив.
Sub LoadFromFile (ByVal TResol As Byte, ByVal FName As String, ByRef MasOut (,) As Byte) fs As IO.FileStream=New IO.FileStream (FName, IO.FileMode.Open) p>
відкриття файлаr As IO.BinaryReader=New IO.BinaryReader (fs)
установка на чтеніе.BaseStream.Seek (& HA, IO.SeekOrigin.Begin) beginData As Int32=r.ReadInt32 () читання де початок данних.BaseStream.Seek (& H12, IO. SeekOrigin.Begin) MaxX, MaxY As Int32=r.ReadInt32 () читання дозвіл по X=r.ReadInt32 () по Y.BaseStream.Seek (& H1C, IO.SeekOrigin.Begin) BperP As Byte=r.ReadByte читання кількість bit на точку
Dim MasTemp (MaxX, MaxY) As Byte 'Створення тимчасового масиву
ClearMas (0, MasTemp) очищення массіваb1, b2, b3, b4 As Integer.BaseStream.Seek (beginData, IO.SeekOrigin.Begin) перехід на початок даних
'Читання даних в массівx, y As Integer
For y=MaxY - 1 To 0 Step - 1x=0 To MaxX - 1=r.ReadByteBperP>=16 Then b2=r.ReadByteBperP>=24 Then b3=r.ReadByteBperP> ;=32 Then b4=r.ReadByte (x, y)=b1
первинна обробка даннихlx, ly As Integer
lx=(MaxX - fWidth (TResol)) 2=(MaxY - fHeight (TResol)) 2x=0 To fWidth (TResol) - 1y=0 To fHeight (TResol) - 1 ( x, y)=MasTemp (lx + x, ly + y). Close () закриття файла.Close ()
End Sub
'процідив виділення центрів ліній
Sub CenterLine (ByVal TResol As Byte, ByVal MasIn (,) As Byte, ByRef MasOut (,) As Byte, ByVal Alpha As Integer) ax, ay As Int16i As Integerly As IntegerLine As Booleannotdel As Booleant As Integer
'Обнулення массіваax=0 To fWidth (TResol) - 1ay=0 To fHeight (TResol) - 1
MasOut (ax, ay)=0
Якщо кут менше 45 градусів то сканувати по Y
If Alpha <= 45 Thenax=0 To fWidth (TResol) - 1=False=0ay=0 To fHeight (TResol) - 1 (MasIn (ax, ay)>=200) And (Line=False) Then=1=True=ay (MasIn (ax, ay) <= 100) And (Line=True) Then '= 0 (ax, (ly + ay) 2)=& HFF= False=ayIf
Else
Якщо кут більше 45 градусів то сканувати по X
For ay=0 To fHeight (TResol) - 1=False=0ax=0 To fWidth (TResol) - 1 (MasIn (ax, ay)>=200) And (Line=False) Then=1=True=ay (MasIn (ax, ay) <= 100) And (Line=True) Then '= 0 (ax, (ly + ay) 2)=& HFF=False=ayIfIfSub p>
'Процедура очищення массіваClearMas (ByVal TResol As Integer, ByRef Mas (,) As Byte) ax, ay As Integerax=0 To fWidth (0) - 1ay=0 To...