Данный код выполняет сканинг и считывание текста из графики (точнее, цифр). Код работает. Но работает непомерно долго! Для сканинга участка протяженностью в 115 pix по оси "Х" уходит более 30 сек. По-моему, это слишком! Подскажите где завелся Лангольер питающийся моим временем и как его посадить на диету?!! Код сыроват... поэтому, судите строго!!!
Спасибо! :beer:
Добавлено:
Может комментарии приписать?
Код:
Opt("PixelCoordMode", 2)
WinActivate("Uhodite proch, Langol'eri!!!")
WinWaitActive("Uhodite proch, Langol'eri!!!")
Dim Const $BelCol = 16777215
Dim $BCAll[12]
Dim $Deny_X, $Deny_Y
Dim $Den
$Deny_X = 115
$Deny_Y = 109
For $q = 0 To 70 Step 1
Dim $Beliy[12][2] = [[$Deny_X + $q, $Deny_Y], _
[$Beliy[0][0] + 1, $Beliy[0][1]], _
[$Beliy[0][0], $Beliy[0][1] + 1], _
[$Beliy[0][0] + 1, $Beliy[0][1] + 1], _
[$Beliy[0][0], $Beliy[0][1] + 2], _
[$Beliy[0][0] + 1, $Beliy[0][1] + 2], _
[$Beliy[0][0], $Beliy[0][1] + 3], _
[$Beliy[0][0], $Beliy[0][1] + 4], _
[$Beliy[0][0], $Beliy[0][1] + 5], _
[$Beliy[0][0], $Beliy[0][1] + 6], _
[$Beliy[0][0] + 1, $Beliy[0][1] + 6], _
[$Beliy[0][0], $Beliy[0][1] + 7]]
For $i = 0 To 11 Step 1
$BCAll[$i] = PixelGetColor($Beliy[$i][0], $Beliy[$i][1])
Next
If $BCAll[2] = $BelCol And $BCAll[3] = $BelCol And $BCAll[10] = $BelCol Then
$Den &= 1
ElseIf $BCAll[0] = $BelCol And $BCAll[8] = $BelCol Then
$Den &= 2
ElseIf $BCAll[0] <> $BelCol And $BCAll[1] = $BelCol And $BCAll[9] = $BelCol Then
$Den &= 3
ElseIf $BCAll[1] = $BelCol And $BCAll[2] = $BelCol And $BCAll[3] = $BelCol Then
$Den &= 4
ElseIf $BCAll[0] = $BelCol And $BCAll[6] = $BelCol And $BCAll[7] = $BelCol Then
$Den &= 5
ElseIf $BCAll[5] = $BelCol And $BCAll[6] = $BelCol Then
$Den &= 6
ElseIf $BCAll[0] = $BelCol And $BCAll[9] <> $BelCol And $BCAll[10] = $BelCol Then
$Den &= 7
ElseIf $BCAll[1] = $BelCol And $BCAll[2] = $BelCol And $BCAll[8] = $BelCol Then
$Den &= 8
ElseIf $BCAll[1] = $BelCol And $BCAll[2] = $BelCol And $BCAll[6] = $BelCol Then
$Den &= 9
ElseIf $BCAll[1] = $BelCol And $BCAll[4] = $BelCol And $BCAll[6] = $BelCol And $BCAll[7] = $BelCol Then
$Den &= 0
ElseIf $BCAll[11] >= 16770000 And $BCAll[11] <= 16773999 Or $BCAll[11] <= 16777200 And $BCAll[11] >= 16777180 Then
$Den &= "."
EndIf
Next
MsgBox(0, "", $Den)
Спасибо! :beer:
Добавлено:
Сообщение автоматически объединено:
Может комментарии приписать?