Обновление 1.0045
1) Оптимизирована скорость распознавания текста. Скорость распознавания увеличилась на порядок.
2) У алфавита появилось свойство Teach. Когда значение свойства = true, программа в режиме исполнения будет запоминать все неизвестные ей символы, а при закрытии программы (крестиком или Alt+F4) записывать их в базу данных, после чего можно будет прописать к ним соответствия в конструкторе. Если значение свойства = false, то «обучение» производится не будет. Если программа скомпилирована в exe файл, то в таком режиме «обучение» не проводится в любом случае.
3) В конструкторе добавлена возможность удалить все символы алфавита, которым не назначены соответствия. Для этого необходимо нажать правой кнопкой мыши на алфавите и выбрать соответствующий пункт из выпавшего меню.
4) В программу добавлены функции позволяющие сохранять участки скриншота в файл или в поток. А также сохранять в файл или поток найденный шаблон.
5) В программу добавлены функции распознавания Капчи, которые работают с сервисом AntiGate.com
Соответственно, чтобы пользоваться ими вам нужно иметь аккаунт на сервисе и оплатить его услуги.
1 2 3 4 5 6 7 8 9 |
function RecognizeAGStream(ImageData: TMemoryStream; AGKey: String; var CaptchaRes: String; MinLen: integer; MaxLen: integer; Numeric: integer; Phrase: integer; RegSense: integer; Calc: integer; Russian: integer): Integer; - //распознать капчу сохраненную в поток. function RecognizeAGFile(ImageFile: String; AGKey: String; var CaptchaRes: String; MinLen: integer; MaxLen: integer; Numeric: integer; Phrase: integer; RegSense: integer; Calc: integer; Russian: integer): Integer;- //распознать капчу из файла формата bmp; function RecognizeAGLink(ImageURL : String; AGKey: String; var CaptchaRes: String; Cookies: String; MinLen: integer; MaxLen: integer; Numeric: integer; Phrase: integer; RegSense: integer; Calc: integer; Russian: integer): Integer - //распознать капчу по ссылке function GetBalanceAG(AGKey: String): String; - //получить ваш баланс на сервисе Antigate.com. function ReportBadAG(AGKey: String; CaptchaID: Integer): String; - //сообщить сервису о неверно распознанной капче. |
Параметры функции:
- ImageData – поток, содержащий каптчу
- ImageFile – путь к файлу каптчи
- ImageURL – ссылка на каптчу
- AGKey – ключ сервиса AntiGate.com для распознавания
- Cookies – при распознавании по URL можно передать в функцию куки, для открытия каптчи, когда это необходимо
- CaptchaRes – буффер, в который попадает текст каптчи, либо сообщение об ошибке
- MinLen – помечает минимальную длину текста каптчи
- MaxLen – 0 – без ограничений, помечает максимальную длину каптчи
- Phrase – 0 — без ограничений, 1 помечает что каптча состоит из нескольких слов
- Regsense – 0 — текст капчи не чувствителен к регистру, 1 помечает что текст каптчи чувствителен к регистру
- Numeric – 0 — допустимы любые символы, 1 помечает что текст каптчи состоит только из цифр, 2 помечает что на каптче нет цифр
- Calc – 0 — вычислять не нужно, 1 помечает что цифры на каптче должны быть высчитаны
- Russian – 0 — любой язык, 1 помечает что вводить нужно только русский текст, 2 – русский или английский
Функция RecognizeAG возвращает:
- Номер каптчи (CaptchaID) – в случае успеха
- 0 (ноль) – при ошибке
Примеры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
Procedure testOnClick(); var R:Trect; CaptchaRes :string;//буффер, в который попадает текст каптчи, либо сообщение об ошибке ImageData:TMemoryStream; bmp:TBitmap; CaptchaID : integer; begin R.Top := 200; R.Bottom := 600; R.Left := 300; R.Right := 1200; ImageData := TMemoryStream.Create(); GlobalScreenShot.Start; sleep(200); GlobalScreenShot.SaveAreaToStream(r, ImageData);//сохраняем кусок шаблона с координатами в структуре r в поток ImageData. CaptchaID := RecognizeAGStream(ImageData,'23452345', CaptchaRes,0, 0, 0, 1, 0,0, 0))); GlobalScreenShot.Stop; ImageData.free; GlobalScreenShot.Start; sleep(200); GlobalScreenShot.SaveAreaToFile('c:\kjksg.bmp',r);//сохраняем кусок шаблона с координатами в структуре r в файл. CaptchaID := RecognizeAGFile('c:\kjksg.bmp', '23452345', CaptchaRes, 0, 0, 0, 0, 0, 0, 0); GlobalScreenShot.Stop; EVE.Start; sleep(1000); if DockButton.FindPicture then //если нашли шаблон begin if DockButton.SaveToFile('c:\kjksg.bmp') then//сохраняем его в файл begin CaptchaID := RecognizeAGFile('c:\kjksg.bmp', '23452345', CaptchaRes, 0, 0, 0, 0, 0, 0, 0); end; end; EVE.Stop; ImageData := TMemoryStream.Create(); EVE.Start; sleep(1000); if DockButton.FindPicture then //если нашли шаблон begin if DockButton.SaveToStream(ImageData) then//сохраняем его в поток begin CaptchaID := RecognizeAGStream(ImageData,'23452345', CaptchaRes,0, 0, 0, 1, 0,0, 0))); end; end; EVE.Stop; ImageData.free; |