Что нового

Объединение трех скриптов в один (какая-то ошибка в цикле)

mv6677

Новичок
Сообщения
105
Репутация
0
Здравствуйте мастера autoit.
Помогите новичку разобраться в непростом деле.

Есть скрипт - формирующий числовую матрицу по картинке 1.jpg.
Красный цвет - означает 1, синий цвет - означает 2, зеленый цвет - означает 3.
По отдельности они работают хорошо.
А вот когда я их пытаюсь объединить в один файл - работать вместе не хотят.
#include <GDIPlus.au3>

$sImage = @ScriptDir & "\1.jpg"

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($sImage)
$iWidth = _GDIPlus_ImageGetWidth($hImage)
$iHeight = _GDIPlus_ImageGetHeight($hImage)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()

Global $iIndex, $iSize = $iWidth * $iHeight, $aPixels[$iHeight][$iWidth]
$tBits = DllStructCreate("dword[" & $iSize & "]")
_WinAPI_GetBitmapBits($hBitmap, 4 * $iSize, DllStructGetPtr($tBits))
For $i = 0 To $iHeight - 1
For $j = 0 To $iWidth - 1
$iIndex += 1
$iColor = DllStructGetData($tBits, 1, $iIndex)
$iRed = BitAND(BitShift($iColor, 16), 0xFF)
$iGreen = BitAND(BitShift($iColor, 8), 0xFF)
$iBlue = BitAND($iColor, 0xFF)
If $iRed > 105 And $iGreen < 70 And $iBlue < 70 Then
$aPixels[$i][$j] = 1
If $iRed < 70 And $iGreen > 115 And $iBlue < 70 Then
$aPixels[$i][$j] = 3
If $iRed < 70 And $iGreen < 70 And $iBlue > 150 Then
$aPixels[$i][$j] = 2
Else
$aPixels[$i][$j] = 0
EndIf
Next
Next
_WinAPI_DeleteObject($hBitmap)

#include <Array.au3>
_ArrayDisplay($aPixels)

Подскажите - как же эти три кода - объединить в один работоспособный код ?
 

Вложения

  • 234634.rar
    6.1 КБ · Просмотры: 2
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
Теперь понял хитрость.
Спасибо за совет.
 
Верх