ssvih-miaa
Новичок
- Сообщения
- 41
- Репутация
- 0
Доброго времени суток всем форумчанам!
Суть: нашел часть кода на форуме
Самостоятельно не хватает знаний разобраться, необходимо реализовать задачу:
1. Получить координаты картинки в браузере по адресу "httр://rubserf.ru/handserf.php", отскринить картинку и сравнить её с уже сохраненными картинками на сервере или ПК, после чего найти 100% совпадение и получить имя файла с которым происходила проверка и совпадение 100%.
Суть: нашел часть кода на форуме
Код:
#include <File.au3>
#include <Array.au3>
#include <GDIPlus.au3>
$aFileList = _FileListToArray(@ScriptDir, '*.jpg', 1)
$sResult = ''
$step = 500 ; шаг при получении массива пикселей, чем больше - тем быстрее работает скрипт
$iN = 10 ; количество наиболее часто встречающихся цветов в массиве, которое берется с начала массива
$iR = 100 ; % совпадения картинок, для отбора на удаление
Dim $aResult[$aFileList[0] + 1][4]
$aResult[0][0] = $aFileList[0]
For $i = 1 To $aFileList[0]
$avArray = _fon($aFileList[$i], $step, $iN)
$sTring = ''
For $j = 1 To $iN
$sTring &= $avArray[$j][0] & '|'
Next
$sTring = StringTrimRight($sTring, 1)
$aResult[$i][0] = $aFileList[$i]
$aResult[$i][2] = $avArray[0][0]
$aResult[$i][3] = $sTring
$sResult &= $sTring & '%'
Next
$sResult = StringTrimRight($sResult, 1)
For $i = 1 To $aResult[0][0]
$sResult1 = StringRegExpReplace($sResult, $aResult[$i][3], '*')
$aSplit = StringSplit($sResult1, '%')
For $j = 1 To $aSplit[0]
If $j <> $i Then
StringReplace($aSplit[$j], '*', '')
$iT = (@extended / $iN * 100)
$aSplit[$j] = $aResult[$j][0] & ' ' & $iT & ' %'
If $iT >= $iR And $aResult[$i][2] > $aResult[$j][2] Then $aResult[$j][1] = 'DEL'
Else
$aSplit[$j] = ''
EndIf
Next
$aSplit[0] = $aResult[$i][0]
_ArrayDisplay($aSplit) ; отображение соотоношения "похожести" картинок, в 0-м элементе - картинка, с которой сравниваются остальные
Next
ReDim $aResult[$aResult[0][0] + 1][2]
_ArrayDisplay($aResult) ; отображение списка картинок, "DEL" - картинки, помеченные для удаления
Func _fon($sPath, $iStep, $iCount)
Local $hBitmap, $tMap, $Width, $Height, $bData, $i, $aTemp
_GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromFile($sPath)
$Width = _GDIPlus_ImageGetWidth($hBitmap)
$Height = _GDIPlus_ImageGetHeight($hBitmap)
$tMap = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $Width, $Height, $GDIP_ILMREAD, $GDIP_PXF32ARGB)
$bData = DllStructGetData(DllStructCreate('byte[' & ($Width * $Height * 4) & ']', DllStructGetData($tMap, 'Scan0')), 1)
_GDIPlus_BitmapUnlockBits($hBitmap, $tMap)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
$bData = StringTrimLeft($bData, 2)
$bData = '######FF' & $bData
$aTemp = StringRegExp($bData, '(\S{1,30})FF', 3)
_ArrayTrim($aTemp, 24, 1)
$aTemp[0] = UBound($aTemp) - 1
For $i = 1 To $aTemp[0] Step $iStep
Assign($aTemp[$i], Eval($aTemp[$i]) + 1)
Next
Dim $uArray[$aTemp[0]][2] = [[0]]
For $i = 1 To $aTemp[0] Step $iStep
If Eval($aTemp[$i]) > 0 Then
$uArray[0][0] += 1
$uArray[$uArray[0][0]][0] = $aTemp[$i]
$uArray[$uArray[0][0]][1] = Eval($aTemp[$i])
Assign($aTemp[$i], -1)
EndIf
Next
ReDim $uArray[$uArray[0][0] + 1][2]
_ArraySort($uArray, 1, 1, 0, 1)
ReDim $uArray[$iCount + 1][1]
$uArray[0][0] = $Width * $Height
Return $uArray
EndFunc ;==>_fon
Самостоятельно не хватает знаний разобраться, необходимо реализовать задачу:
1. Получить координаты картинки в браузере по адресу "httр://rubserf.ru/handserf.php", отскринить картинку и сравнить её с уже сохраненными картинками на сервере или ПК, после чего найти 100% совпадение и получить имя файла с которым происходила проверка и совпадение 100%.