日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi识别读取验证码

發(fā)布時(shí)間:2024/4/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi识别读取验证码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

unit OCR;interfaceuses Windows, SysUtils, Graphics, Classes, PNGImage, GIFImage, JPEG, Math, AsphyreZlib;typeTOCRLibSetting = record //驗(yàn)證碼庫設(shè)置SaveBMP: Boolean; //存儲(chǔ)轉(zhuǎn)換后的Bmp文件BmpPath: String; //Bmp存儲(chǔ)路徑BmpPrefix: String; //Bmp文件前綴BmpSuffix: String; //Bmp文件后綴end;type//圖像大小類TOCRSz = recordW,H: Byte; //寬,高end;//特征碼模板庫類TOCRTemplates = recordCount: Byte; //數(shù)量Names: array of String; //名稱OCRFiles: array of String; //文件名/路徑OCRSz: array of TOCRSz; //圖像大小YaoqiuSS: array of Byte; //是否為算式end;//初始化驗(yàn)證碼庫 function InitOCRLib: Boolean; //取消使用Dll procedure CancelUseDLL; //加載驗(yàn)證碼模板庫 function LoadOCRLib(const AFileName: String = ''): Boolean; //圖像轉(zhuǎn)換為BMP function ALL2BMP(const Filename : String; const Bmp: TBitmap): Boolean; //加載資源dll function LoadOCRResourceDLL(const ADllName: String): Boolean; //識(shí)別驗(yàn)證碼 function RecogOCR(var Success: Boolean; const ImageFile: String): String; //更改特征碼模板 function LoadOCRTemplate(const TmplID: Integer): Boolean; //加載特征碼文件 function LoadOCRFile(const ocrFile: String; const IsAutoSS: Boolean = False): Boolean; //查找驗(yàn)證碼特征文件 function FetchOCR(const StartIndex: Integer; const Width,Height: Integer; const AOCRName: String = ''): Integer; //驗(yàn)證碼庫設(shè)置 function SetOCRLib(const ASetting: TOCRLibSetting): Boolean; //獲得驗(yàn)證碼庫設(shè)置 function GetOCRLibSetting: TOCRLibSetting; //獲得驗(yàn)證碼模板庫 function GetOCRTemplates: TOCRTemplates; //獲取最后識(shí)別時(shí)間(毫秒) function GetLastRecogTime: DWORD; //調(diào)用AspriseOcr//function RecogOCRByOCRLib(const FileName: String): String;//釋放驗(yàn)證碼庫/清除特征碼文件 function FreeOcr: Boolean;//procedure SetPicFormat(Format: Byte);constFMT_AUTO = 4; //自動(dòng)FMT_PNG = 2; //pngFMT_BMP = 1; //bmpFMT_GIF = 3; //gifFMT_JPEG = 0; //jpg/jpegimplementationuses IniFiles, SSUtils;typeRSpeicalEffects = record //特殊效果To1Line: Boolean; //字符歸位RemoveZD: Boolean; //消除噪點(diǎn)Y0: Byte; //Y軸偏移XcZD: Byte; //噪點(diǎn)閥值end;type //字符特征碼RChar = recordMyChar: char; //字符used: Boolean; //已使用MyCharInfo: array[0..49, 0..49] of byte; //字符圖像end;type //字符特征文件RCharInfo = recordcharwidth: byte; //字符寬度charheight: byte; //字符高度X0: byte; //第一個(gè)字符開始x偏移TotalChars: byte; //圖象字符總數(shù)CusDiv : boolean; //自定義二值化運(yùn)算DivCmp : Byte; // 0:> 1:= 2:<<br> DivColr : TColor; //二值化閥值_CmpChr,_CmpBg: Boolean; //比較字符(黑色),比較背景(白色)_ClrRect: Boolean; //清除矩形_RectLen: Byte; //矩形長度allcharinfo: array[0..42] of RChar; //字符特征碼列表end;typeTOcrVersionSng = array [0..1] of Byte;TOcrVersion = record //版本號(hào)First,Minjor: Byte; //版本Author: String[10]; //作者Name: String[20]; //特征碼名稱end;ROcrLibFile = recordSng: TOcrVersionSng; //版本標(biāo)識(shí)Ver: TOcrVersion; //版本W(wǎng),H: Byte; //圖像寬,高Effect: RSpeicalEffects; //特殊效果CharInfo: RCharInfo; //特征碼EffectBLW: Boolean; //通用二值化end;TOcrLibDllInfo = recordDllFile: String;MDLRPrefix: String;MDLRType: String;end;var_BITMAP: TBitmap; //識(shí)別圖像MycharInfo: RCharInfo; //特征碼_Effect: RSpeicalEffects; //特效_EffBLW: Boolean; //通用二值化SSCode: Byte; //是否為算式varBmW,BmH: Integer; //特征碼圖像寬,高OcrName: String; //特征碼名稱_PicFormat: Byte; //圖像格式_PicWidth,_PicHeight: Byte; //實(shí)際圖像寬,高Templates: TOCRTemplates; //模板列表Setting: TOCRLibSetting;LastRecogTime: DWORD;varUseDll: Boolean;DllInfo: TOcrLibDllInfo;constSP = '@';procedure CancelUseDLL;beginUseDll := False;end;function GetLastRecogTime: DWORD;beginResult := LastRecogTime;end;function GetOCRLibSetting: TOCRLibSetting;beginResult := Setting;end;function GetOCRTemplates: TOCRTemplates;beginResult := Templates;end;function LoadOCRResourceDLL(const ADllName: String): Boolean;varstrm: TResourceStream;hDll: THandle;S: String;function GetTempPathFileName: String;varSPath, SFile : PChar;beginSPath := AllocMem(MAX_PATH);SFile := AllocMem(MAX_PATH);GetTempPath(MAX_PATH, SPath);GetTempFileName(SPath, '~OC', 0, SFile);Result := String(SFile);FreeMem(SPath, MAX_PATH);FreeMem(SFile, MAX_PATH);DeleteFile(Result);end;beginResult := False;tryhDll := LoadLibrary(PChar(ADllName));if hDll <> 0 thenbegintrystrm := TResourceStream.Create(hDll,'SDSOFT_OCR',PChar('OCR'));S := GetTempPathFileName;strm.SaveToFile(S);tryUseDll := True;Result := LoadOCRLib(S);exceptUseDll := False;end;if Result = False then UseDll := False;if UseDll = True then DllInfo.DllFile := ADllName;DeleteFile(S);finallyFreeLibrary(hDll);end;end;Result := True;exceptend;end;function SetOCRLib(const ASetting: TOCRLibSetting): Boolean;beginResult := False;trySetting := ASetting;Result := True;exceptend;end;function InitOCRLib: Boolean;beginResult := False;tryUseDll := False;DllInfo.DllFile := '';DllInfo.MDLRPrefix := '';DllInfo.MDLRType := '';_BITMAP := nil;FillChar(MycharInfo,SizeOf(RCharInfo),#0);MycharInfo.DivCmp := 3;MycharInfo.DivColr := $7FFFFF;MycharInfo._CmpChr := True;MycharInfo._CmpBg := False;MycharInfo.X0 := 0;MycharInfo.charwidth := 0;MycharInfo.CusDiv := False;MycharInfo.charheight := 0;FillChar(_Effect,SizeOf(RSpeicalEffects),#0);_Effect.To1Line := False;_Effect.RemoveZD := False;Setting.SaveBMP := False;Setting.BmpPrefix := 'OCR';Setting.BmpSuffix := '';LastRecogTime := 0;exceptend;end;function FetchOCR(const StartIndex: Integer; const Width,Height: Integer; const AOCRName: String = ''): Integer;varI: Integer;beginResult := -1;for I := StartIndex to Integer(Templates.Count) - 1 dobeginif (Templates.Names[I] = AOCRName) or((Templates.OCRSz[I].W = Width) and (Templates.OCRSz[I].H = Height))thenbeginResult := I;Break;end;end;end;function LoadOCRLib(const AFileName: String = ''): Boolean;varIni: TIniFile;S,S2: String;I,J: Integer;FileName: String;beginResult := False;FileName := AFileName;if FileName = '' thenFileName := ExtractFilePath(ParamStr(0))+'OCR.INI';tryTemplates.Count := 0;SetLength(Templates.Names,0);SetLength(Templates.OCRFiles,0);Ini := TIniFile.Create(FileName);Templates.Count := Byte(Ini.ReadInteger('OCRLIB','TCNT',0));SetLength(Templates.Names,Templates.Count*SizeOf(String));SetLength(Templates.OCRFiles,Templates.Count*SizeOf(String));SetLength(Templates.OCRSz,Templates.Count*SizeOf(TOCRSz));SetLength(Templates.YaoqiuSS,Templates.Count*SizeOf(Byte));for I := 0 to Templates.Count - 1 dobeginS := Ini.ReadString('OCRLIB','T'+IntToStr(I),'');if S <> '' thenbeginJ := Pos(';',S);S2 := Copy(S,1,J-1);S := Copy(S,J+1,Length(S)-J+1);if UseDll then Templates.OCRFiles[I] := S2else Templates.OCRFiles[I] := ExtractFilePath(ParamStr(0))+S2;J := Pos(';',S);S2 := Copy(S,1,J-1);S := Copy(S,J+1,Length(S)-J+1);Templates.OCRSz[I].W := Byte(StrToInt(S2));J := Pos(';',S);S2 := Copy(S,1,J-1);S := Copy(S,J+1,Length(S)-J+1);Templates.OCRSz[I].H := Byte(StrToInt(S2));Templates.YaoqiuSS[I] := Byte(StrToInt(S));Templates.Names[I] := Ini.ReadString('OCRNAME','T'+IntToStr(I),'');end;end;if UseDll = True thenbeginDllInfo.MDLRPrefix := Ini.ReadString('DLLSETTING','Prefix','');DllInfo.MDLRType := Ini.ReadString('DLLSETTING','ResourceType','OCR');end;Ini.Free;Result := True;exceptend;end;function LoadOCRFile(const ocrFile: String; const IsAutoSS: Boolean = False): Boolean;varFstrm: TFileStream;strm: TMemoryStream;dat: ROcrLibFile;function VersVerify: Boolean;beginResult := (dat.Sng[0] = Byte('O')) and (dat.Sng[1] = Byte('C'));end;beginResult := False;tryFstrm := TFileStream.Create(ocrFile,fmOpenRead);strm := TMemoryStream.Create;tryFstrm.Position := 0;ZDecompressStream(FStrm,strm);Fstrm.Free;strm.Position := 0;strm.Read(dat,SizeOf(ROcrLibFile));if VersVerify = True thenbeginMycharInfo := dat.CharInfo;_Effect := dat.Effect;BmW := dat.W;BmH := dat.H;OcrName := dat.Ver.Name;_EffBLW := dat.EffectBLW;Result := True;end;finallystrm.Free;end;if IsAutoSS = True then SSCode := 1else SSCode := 0;exceptend;end;procedure To1Line(const Bmp: TBitmap; Y0,X0,Chw,CharL: Byte);typexByteArray = array of Byte;varX,Y: Integer;Ch: TBitmap;MinJL: xByteArray;function MinArr(const Data: xByteArray; const Count: Integer): Byte;varI: Integer;beginif Count = 0 then Exit;Result := Data[0];for I := 0 to Count - 1 dobeginif Data[I] < Result then Result := Data[I];end;end;procedure GetMinJL(const nChar: Byte);varK,L,M: Byte;c: TColor;MinJLS: xByteArray;beginK := X0 + nChar * Chw;SetLength(MinJLS,Chw);for L := 0 to Chw - 1 dobeginM := 0;c := Bmp.Canvas.Pixels[K+L,M+Y0];while (c <> clBlack) and (M <= Bmp.Height) dobegininc(M);c := Bmp.Canvas.Pixels[K+L,M+Y0];end;MinJLS[L] := M;end;MinJL[nChar] := MinArr(MinJLS,Chw);SetLength(MinJLS,0);end;beginSetLength(MinJL,CharL);Ch := TBitmap.Create;for X := 0 to CharL - 1 dobeginGetMinJL(X);Y := X0 + X * Chw;Ch.Width := Chw;Ch.Height := Bmp.Height - MinJL[X];Ch.Canvas.Brush.Color := clWhite;Ch.Canvas.Brush.Style := bsSolid;Ch.Canvas.Pen.Color := clWhite;Ch.Canvas.Pen.Style := psSolid;Ch.Canvas.Rectangle(0,0,Ch.Width,Ch.Height);Ch.Canvas.CopyRect(Rect(0,0,Ch.Width,Ch.Height),Bmp.Canvas,Rect(Y,MinJL[X],Y+Chw,Bmp.Height));Bmp.Canvas.Brush.Color := clWhite;Bmp.Canvas.Brush.Style := bsSolid;Bmp.Canvas.Pen.Color := clWhite;Bmp.Canvas.Pen.Style := psSolid;Bmp.Canvas.Rectangle(Y,MinJL[X],Y+Chw,Bmp.Height);Bmp.Canvas.CopyRect(Rect(Y,Y0,Y+Chw,Bmp.Height-MinJL[X]),Ch.Canvas,Rect(0,0,Ch.Width,Ch.Height));end;Ch.Free;SetLength(MinJL,0);end;function GetTail(str,sp : String): Integer;varTemp : String;beginTemp := Str;Delete(Temp,1,Pos(sp,str)+length(sp)-1);Result := StrToInt(Temp);end;procedure SlQuickSort(Sl : TStringList; iLo, iHi: Integer);varLo, Hi, Mid : Integer;T : String;beginLo := iLo;Hi := iHi;Mid := GetTail(Sl[(Lo + Hi) div 2],Sp);repeatwhile GetTail(Sl[Lo],Sp) < Mid do Inc(Lo);while GetTail(Sl[Hi],Sp) > Mid do Dec(Hi);if Lo <= Hi thenbeginT := sl[Lo];sl[Lo] := sl[Hi];sl[Hi] := T;Inc(Lo);Dec(Hi);end;until Lo > Hi;if Hi > iLo then SlQuickSort(Sl, iLo, Hi);if Lo < iHi then SlQuickSort(Sl, Lo, iHi);end;Function HexToInt(Hex :String):Int64;Var Sum : Int64;I,L : Integer;BeginL := Length(Hex);Sum := 0;For I := 1 to L DoBeginSum := Sum * 16;If ( Ord(Hex[I]) >= Ord('0')) and (Ord(Hex[I]) <= Ord('9')) thenSum := Sum + Ord(Hex[I]) - Ord('0')else If ( Ord(Hex[I]) >= Ord('A') ) and (Ord(Hex[I]) <= Ord('F')) thenSum := Sum + Ord(Hex[I]) - Ord('A') + 10else If ( Ord(Hex[I]) >= Ord('a') ) and ( Ord(Hex[I]) <= Ord('f')) thenSum := Sum + Ord(Hex[I]) - Ord('a') + 10elseBeginSum := -1;break;End;End;Result := Sum;End;function GetHead(str,sp : String):string;beginResult:=copy(str,1,pos(sp,str)-1);end;procedure WhiteBlackImgEx(const bmp: TBitmap);typexByteArray = array of Byte;varp: PByteArray;J,Y,W: Integer;arr: xByteArray;function AverageArr(const Data: xByteArray; const Count: Integer): Int64;varI: Integer;beginResult := 0;if Count = 0 then Exit;for I := 0 to Count - 1 dobeginResult := Result + Data[I];end;Result := Round(Result/Count);end;beginbmp.PixelFormat := pf24bit;SetLength(arr,bmp.Height*bmp.Width);for Y := 0 to bmp.Height - 1 dobeginp := bmp.ScanLine[Y];J := 0;while J < bmp.Width*3 dobeginarr[(Y*bmp.Width)+J div 3] := Round((p[J]+p[J+1]+p[J+2])/3);Inc(J,3);end;end;W := Byte(AverageArr(Arr,bmp.Height*bmp.Width));for Y := 0 to bmp.Height - 1 dobeginp := bmp.ScanLine[Y];J := 0;while J < bmp.Width*3 dobeginif Round((p[J]+p[J+1]+p[J+2])/3) >= W thenbeginp[J] := 0;p[J+1] := 0;p[J+2] := 0;end elsebeginp[J] := MaxByte;p[J+1] := MaxByte;p[J+2] := MaxByte;end;Inc(J,3);end;end;SetLength(Arr,0);end;procedure Ranse(const bmp: TBitmap; const Color: TColor);varc: TColor;X,Y: Integer;r1,g1,b1: Byte;r2,g2,b2: Byte;beginr1 := GetRValue(Color);g1 := GetGValue(Color);b1 := GetBValue(Color);for X := 0 to bmp.Width - 1 dobeginfor Y := 0 to bmp.Height - 1 dobeginc := Bmp.Canvas.Pixels[X,Y];r2 := GetRValue(c);g2 := GetGValue(c);b2 := GetBValue(c);// if (c <> clWhite) and (c <> clBlack) then// beginr2 := Round(r1*Min(Abs(r2-MaxByte),MaxByte-r2)/MaxByte);g2 := Round(g1*Min(Abs(g2-MaxByte),MaxByte-g2)/MaxByte);b2 := Round(b1*Min(Abs(b2-MaxByte),MaxByte-b2)/MaxByte);c := RGB(r2,g2,b2);Bmp.Canvas.Pixels[X,Y] := c;// end;end;end;end;procedure Grayscale(const bmp: TBitmap);varp: PByteArray;J,Y,W: Integer;beginbmp.PixelFormat := pf24bit;for Y := 0 to bmp.Height - 1 dobeginp := bmp.ScanLine[Y];J := 0;while J < bmp.Width*3 dobeginW := (P[J] * 28 + P[J+1] *151 + P[J+2] * 77);W := W shr 8;P[J] := Byte(W);P[J+1] := Byte(W);P[J+2] := Byte(W);Inc(J,3);end;end;//bmp.PixelFormat := pf1bit;//bmp.PixelFormat := pf24bit; end;function ALL2BMP(const Filename : String; const Bmp: TBitmap): Boolean;varGIF: TGIFImage;jpg: TJPEGImage;PNG: TPNGobject;FileEx: String;beginResult := False;tryFileEx := UpperCase(ExtractFileExt(filename));if FileEx = '.PNG' thenbeginPNG := TPNGobject.Create;tryPNG.LoadFromFile(filename);_PicFormat := 2;BMP.Assign(PNG);except//not png imageend;PNG.Free;end else if FileEx = '.BMP' thentryBMP.LoadFromFile(filename);_PicFormat := 1;except//not bmp imageendelse if FileEx = '.GIF' thenbeginGIF := TGIFImage.Create;tryGIF.LoadFromFile(filename);_PicFormat := 3;BMP.Assign(GIF);except//not gif imageend;GIF.Free;end else if (FileEx = '.JPG') or (FileEx = '.JPEG') thenbeginJPG := TJPEGImage.Create;tryJPG.LoadFromFile(filename);_PicFormat := 4;BMP.Assign(JPG);except//not jpg imageend;JPG.Free;end;//if _PicFormat = 0 thentryBMP.LoadFromFile(FileName);_PicFormat := 1;exceptend;if _PicFormat = 0 thenbeginPNG := TPNGobject.Create;tryPNG.LoadFromFile(FileName);_PicFormat := 2;BMP.Assign(PNG);finallyPNG.Free;end;end;if _PicFormat = 0 thenbeginGIF := TGIFImage.Create;tryGIF.LoadFromFile(FileName);_PicFormat := 3;BMP.Assign(GIF);finallyGIF.Free;end;end;if _PicFormat = 0 thenbeginJPG := TJPEGImage.Create;tryJPG.LoadFromFile(FileName);BMP.Assign(JPG);_PicFormat := 4;finallyJPG.Free;end;end;Result := True;exceptend;end;function PIC2BMP(filename : String): TBITMAP;varGIF: TGIFImage;jpg: TJPEGImage;BMP: TBITMAP;PNG: TPNGobject;FileEx: String;i, j, x: Byte;b : boolean;//SrcRGB : pByteArray;ClPixel : TColor;beginb := False;ClPixel := 0;FileEx := UpperCase(ExtractFileExt(filename));BMP := TBITMAP.Create;if FileEx = '.PNG' thenbeginPNG := TPNGobject.Create;tryPNG.LoadFromFile(filename);_PicFormat := 2;BMP.Assign(PNG);except//not png imageend;PNG.Free;end else if FileEx = '.BMP' thentryBMP.LoadFromFile(filename);_PicFormat := 1;except//not bmp imageendelse if FileEx = '.GIF' thenbeginGIF := TGIFImage.Create;tryGIF.LoadFromFile(filename);_PicFormat := 3;BMP.Assign(GIF);except//not gif imageend;GIF.Free;end else if (FileEx = '.JPG') or (FileEx = '.JPEG') thenbeginJPG := TJPEGImage.Create;tryJPG.LoadFromFile(filename);_PicFormat := 4;JPG.Grayscale := TRUE;BMP.Assign(JPG);except//not jpg imageend;JPG.Free;end;//if _PicFormat = 0 thentryBMP.LoadFromFile(FileName);_PicFormat := 1;exceptend;if _PicFormat = 0 thenbeginPNG := TPNGobject.Create;tryPNG.LoadFromFile(FileName);_PicFormat := 2;BMP.Assign(PNG);finallyPNG.Free;end;end;if _PicFormat = 0 thenbeginGIF := TGIFImage.Create;tryGIF.LoadFromFile(FileName);_PicFormat := 3;BMP.Assign(GIF);finallyGIF.Free;end;end;if _PicFormat = 0 thenbeginJPG := TJPEGImage.Create;tryJPG.LoadFromFile(FileName);JPG.Grayscale := TRUE;BMP.Assign(JPG);_PicFormat := 4;finallyJPG.Free;end;end;_PicWidth := BMP.Width;_PicHeight := BMP.Height;//BMP.SaveToFile(_PicFile+'.BMP');//Fetch(_BbsType,_PicWidth,_PicHeight,_PicFormat,_CodeUrl);if _EffBLW thenbeginGrayscale(bmp);Ranse(bmp,clRed);WhiteBlackImgEx(bmp);end elsebeginBmp.PixelFormat := pf24Bit;// make picture only black and whitefor j := 0 to BMP.Height - 1 dobeginSrcRGB := BMP.ScanLine[j];for i := 0 to BMP.Width - 1 dobeginif MycharInfo._ClrRect thenbeginx := MycharInfo._RectLen;if (iBMP.Width-1-x)or(j>BMP.Height-1-x) thenbeginSrcRGB[i*3] := $ff;SrcRGB[i*3+1] := $ff;SrcRGB[i*3+2] := $ff;continue;end;end;ClPixel := HexToInt(IntToHex(SrcRGB[i*3],2)+IntToHex(SrcRGB[i*3+1],2)+IntToHex(SrcRGB[i*3+2],2));if MycharInfo.CusDiv thenbegincase MycharInfo.DivCmp of0: b := ClPixel > MycharInfo.DivColr;1: b := ClPixel = MycharInfo.DivColr;2: b := ClPixel < MycharInfo.DivColr;4: b := ClPixel <> MycharInfo.DivColr;end;end elseb := ClPixel > MycharInfo.DivColr;if b then beginSrcRGB[i*3] := $ff;SrcRGB[i*3+1] := $ff;SrcRGB[i*3+2] := $ff;end else beginSrcRGB[i*3] := 0;SrcRGB[i*3+1] := 0;SrcRGB[i*3+2] := 0;end;end;end;end;{BMP.Canvas.lock;for i := 0 to BMP.Width - 1 dofor j := 0 to BMP.Height - 1 dobeginif _ClrRect thenbeginx := _RectLen;if (iBMP.Width-1-x)or(j>BMP.Height-1-x) thenbeginBMP.Canvas.Pixels[i, j] := clwhite;continue;end;end;if _CusDiv thenbegincase _DivCmp of0: b := BMP.Canvas.Pixels[i, j] > _DivColr;1: b := BMP.Canvas.Pixels[i, j] = _DivColr;2: b := BMP.Canvas.Pixels[i, j] < _DivColr;end;end elseb := BMP.Canvas.Pixels[i, j] > _DivColr;if b thenBMP.Canvas.Pixels[i, j] := clwhiteelseBMP.Canvas.Pixels[i, j] := clblack;end;BMP.Canvas.Unlock; }result := BMP;end;function CMPBMP(SBMP: TBITMAP; x0, m: integer): integer;vari, j: integer;//SrcRGB : pByteArray;beginresult := 0;for j := 0 to MycharInfo.charheight -1 dobeginSrcRGB := SBMP.ScanLine[j];for i := 0 to MycharInfo.charwidth -1 dobeginif MycharInfo._CmpChr and (SrcRGB[(x0+i)*3] = 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 0) thenInc(Result);if MycharInfo._CmpBg and (SrcRGB[(x0+i)*3] > 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 1) thenInc(Result);end;end;{result := 0;SBMP.Canvas.Lock;for i := 0 to MycharInfo.charwidth - 1 dofor j := 0 to MycharInfo.charHeight - 1 dobeginif _CmpChr and (SBMP.Canvas.Pixels[x0 + i, j] = 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 0) thenInc(Result);if _CmpBg and (SBMP.Canvas.Pixels[x0 + i, j] > 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 1) thenInc(Result);end;SBMP.Canvas.Unlock; }end;function CMPBMPPRO(SBMP: TBITMAP; x0, m: integer): integer;vari, j : integer;xj : byte;Ret : Integer;//SrcRGB : pByteArray;beginresult := 99999;for xj := 0 to _BITMAP.Height - MycharInfo.charheight dobeginRet := 0;for j := 0 to MycharInfo.charHeight - 1 dobeginSrcRGB := SBMP.ScanLine[j+xj];for i := 0 to MycharInfo.charwidth - 1 dobeginif MycharInfo._CmpChr and (SrcRGB[(x0+i)*3] = 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 0) thenInc(Ret);if MycharInfo._CmpBg and (SrcRGB[(x0+i)*3] > 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 1) thenInc(Ret);end;end;if result > Ret thenresult := Ret;end;{result := 99999;SBMP.Canvas.Lock;for xj := 0 to _BITMAP.Height - MycharInfo.charheight dobeginRet := 0;for i := 0 to MycharInfo.charwidth - 1 dofor j := 0 to MycharInfo.charHeight - 1 dobeginif _CmpChr and (SBMP.Canvas.Pixels[x0 + i, j+xj] = 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 0) thenInc(Ret);if _CmpBg and (SBMP.Canvas.Pixels[x0 + i, j+xj] > 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 1) thenInc(Ret);end;if result > Ret thenresult := Ret;end;SBMP.Canvas.Unlock; }end;function GetStringFromImage(SBMP: TBITMAP): String; //const// SpeicalChars: array [0..6] of String = ('+','-','*','/','(',')','='); vark, m, x: integer;alike : Integer;S : String;Sort : boolean;SlAlike : TStringList;begin//DebugStr('SBMP_W_H',IntToStr(SBMP.Width)+'*'+IntToStr(SBMP.Height),'e:');result := '';if _Effect.To1Line = True thenbegintryTo1Line(SBMP,_Effect.Y0,MycharInfo.X0,MycharInfo.charwidth,Mycharinfo.TotalChars);exceptend;end;SlAlike := TStringList.Create;for k := 0 to MycharInfo.TotalChars - 1 dobeginx := MycharInfo.X0 + MyCharInfo.charwidth * k;//DebugLog('k:'+IntToStr(k)+' '+'x:'+IntToStr(x));SlAlike.Clear;Sort := True;for m := 0 to 42 dobeginif Mycharinfo.allcharinfo[m].used = True thenbegin{if m>35 thenS := SpeicalChars[m-36]else if m>9 thenS := Chr(m+87)elseS := IntToStr(m); }S := Mycharinfo.allcharinfo[m].MyChar;if SBMP.Height = MycharInfo.charheight thenAlike := CMPBMP(SBMP, x, m)elseAlike := CMPBMPPRO(SBMP, x, m);//DebugLog('m:'+s+' '+'Alike:'+IntToStr(Alike));if Alike = 0 thenbeginResult := Result + S;//DebugLog('get_it:'+s);//DebugStr('GET_IT','GET '+S+ ' AS '+IntToStr(k+1)+ 'TH NUM','e:');Sort := False;break;end elseSlAlike.Add(S + Sp + IntToStr(Alike));end;end;if Sort thenbeginSlQuickSort(SlAlike,0,SlAlike.Count-1);result := result + GetHead(SlAlike[0],Sp);//DebugLog('get_it_by_sort:'+GetHead(SlAlike[0],Sp));//DebugStr('GET_IT_SORT','GET '+GetHead(SlAlike[0],Sp)+ ' AS '+IntToStr(k)+ 'TH NUM','e:');//SlAlike.SaveToFile('f:\'+IntToStr(k)+'.txt');end;end;SlAlike.Free;end;function RecogOCR(var Success: Boolean; const ImageFile: String): String;beginSuccess := False;try_BITMAP := nil;LastRecogTime := GetTickCount;_BITMAP := PIC2BMP(ImageFile);Result := GetStringFromImage(_BITMAP);LastRecogTime := GetTickCount-LastRecogTime;SaveBmp;_BITMAP.Free;Success := True;if SSCode = 1 then Result := SSUtils.RecogSuanshi(Result);exceptLastRecogTime := 0;end;end;end. //----------------------------------------------------------//---------------------------------------------------------- unit SSUtils;interfaceuses Windows, SysUtils, CalcExpress;function RecogSuanshi(const S: String): String;implementationfunction DeleteFh(const S: String; const Fh: Char): String;varI: Integer;beginResult := '';for I := 1 to Length(S) dobeginif S[I] <> Fh thenbeginResult := Result + S[I];end;end;end;function RecogSuanshi(const S: String): String; constargv: array [0..1] of Extended = (0,1);varS2: String;cexp: TCalcExpress;beginResult := '計(jì)算錯(cuò)誤!';trycexp := TCalcExpress.Create(nil);tryS2 := DeleteFh(S,'?');S2 := DeleteFh(S,'=');S2 := StringReplace(S2,'','+',[rfReplaceAll]);S2 := StringReplace(S2,'','-',[rfReplaceAll]);S2 := StringReplace(S2,'','*',[rfReplaceAll]);S2 := StringReplace(S2,'','/',[rfReplaceAll]);S2 := StringReplace(S2,'×','*',[rfReplaceAll]);S2 := StringReplace(S2,'÷','/',[rfReplaceAll]);S2 := StringReplace(S2,'','+',[rfReplaceAll]);S2 := StringReplace(S2,'','-',[rfReplaceAll]);cexp.Formula := S2;Result := IntToStr(Round(cexp.calc(argv)));exceptend;finallycexp.Free;end;end;end.

?

總結(jié)

以上是生活随笔為你收集整理的Delphi识别读取验证码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

超碰在线人 | 91porny九色在线播放 | 探花视频免费观看高清视频 | 精品美女久久久久 | 天天爱天天草 | 免费aa大片 | 国产一区二区在线免费 | 国产日产欧美在线观看 | 亚洲精品www | 欧美午夜久久久 | 日韩精品一区二区三区视频播放 | 亚洲综合五月 | 国产高清视频在线播放 | 成人性生爱a∨ | 久草香蕉在线 | 天天射天天操天天色 | 免费日韩精品 | 免费美女av| 日韩中文三级 | 国产色拍拍拍拍在线精品 | 日韩精品一区二区三区丰满 | 91在线精品秘密一区二区 | 伊人婷婷综合 | 午夜视频色 | www.com在线观看 | 99热都是精品 | www..com黄色片| 91av电影在线观看 | 观看免费av | 国内精品美女在线观看 | 久久这里只有精品久久 | 四虎www com | 国产三级精品在线 | 久久免费试看 | 国产98色在线 | 日韩 | www操操操| 久久 地址| 男女激情麻豆 | 黄色一级影院 | 国产一区视频在线 | 91精品在线观看入口 | 在线免费观看羞羞视频 | 成人羞羞视频在线观看免费 | 五月婷婷av在线 | 欧美美女激情18p | 五月婷婷黄色 | 米奇四色影视 | 国产成人精品午夜在线播放 | 国产免费观看久久 | 久久久久久免费视频 | 国产黄色片网站 | www.狠狠操| 波多野结衣小视频 | 国内外激情视频 | 久久久久久久99 | av网在线观看| 日韩精品一区在线观看 | 亚洲成人麻豆 | 久久少妇免费视频 | 在线亚洲观看 | av免费看网站 | av成人在线网站 | 91久久偷偷做嫩草影院 | 亚洲欧美国产精品久久久久 | 成人精品国产免费网站 | 久久99国产综合精品免费 | 91免费看黄 | 激情www| 国产a高清| 色偷偷88888欧美精品久久久 | 在线观看一区二区视频 | 亚洲电影成人 | 91入口在线观看 | 黄色片免费电影 | 麻豆91精品 | 成人国产网址 | 日韩欧美高清一区二区三区 | www.亚洲激情.com | 五月婷影院 | 日韩欧美一区二区在线观看 | www视频在线播放 | 麻花豆传媒mv在线观看网站 | 日本久久电影 | 五月婷av | 亚洲视频电影在线 | 中文字幕在线播放日韩 | 国产专区第一页 | 久久久久免费电影 | 久久avav| 国产精品视频久久久 | 99视频在线观看免费 | 欧美在线视频a | 免费av片在线 | 九九99视频 | 在线观看www91 | 久久国产成人午夜av影院宅 | 一区二区三区在线视频观看58 | 精品国产激情 | 国产真实精品久久二三区 | 天天操天天操天天爽 | 久久不射电影院 | 看黄色91 | 久久艹人人 | 久久午夜电影院 | 免费成人在线观看 | 国产一区二区在线免费视频 | 色福利网站 | 精品国内自产拍在线观看视频 | 免费三级黄色片 | 黄视频色网站 | 不卡av电影在线观看 | 夜色在线资源 | 精品在线免费观看 | 欧美一区二区三区在线看 | 中文字幕丝袜制服 | 一区二区视频电影在线观看 | 久久国产精品精品国产色婷婷 | 99精品成人 | 国产99久久久国产精品免费看 | 亚洲精品福利视频 | 色www永久免费 | 91av片| www.婷婷色 | 在线视频 一区二区 | 免费 在线 中文 日本 | 狠狠躁天天躁 | 免费情缘 | 欧美精品一区二区蜜臀亚洲 | 99视频一区二区 | 亚洲另类视频在线观看 | 91久久人澡人人添人人爽欧美 | 久久国产精品视频免费看 | 免费三级av| 日韩精品免费在线播放 | 亚洲天天在线日亚洲洲精 | 国产免费中文字幕 | 黄色亚洲免费 | 97超级碰碰 | 国产黄色av网站 | 在线黄色免费av | 日韩精品久久久 | 天天搞天天干天天色 | 国产精品不卡在线播放 | www操操 | 麻豆91精品 | 欧美精品少妇xxxxx喷水 | 99久久久国产精品免费观看 | 国产福利精品在线观看 | 久久久久久久久久亚洲精品 | 日韩久久久久久久久久久久 | 国产精品无av码在线观看 | 亚洲综合小说电影qvod | 久久天堂亚洲 | 久久精品日产第一区二区三区乱码 | 日韩激情综合 | 中文字幕在线免费看 | 麻豆视频在线观看 | 亚洲.www | 激情丁香综合 | 免费观看9x视频网站在线观看 | 日韩激情小视频 | 婷婷激情综合网 | 国产精品一区二区免费 | 久久久污| 欧美小视频在线观看 | 日韩欧美视频在线播放 | 探花系列在线 | 成人黄色在线视频 | 三上悠亚一区二区在线观看 | 成人资源站 | 免费麻豆网站 | 久久精品国产成人精品 | 久99久精品视频免费观看 | 丁香视频 | 91久久国产自产拍夜夜嗨 | 欧美日韩视频在线一区 | 四虎国产精品成人免费影视 | 中文字幕资源在线观看 | 久久99免费视频 | 欧美在线观看小视频 | 国产福利一区在线观看 | 黄色毛片视频免费 | 欧美日韩免费一区 | 国产精品永久 | 在线视频电影 | 国产精品久久久久久久久久东京 | 五月婷婷黄色 | 国产成人一区三区 | 97视频在线免费观看 | 欧美一区二区三区在线 | 成人在线观看av | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 国产亚洲婷婷 | 国产午夜激情视频 | 亚洲国产精品一区二区久久hs | 日日夜夜精品免费视频 | 国产精品久久久一区二区 | 日韩av电影手机在线观看 | 亚洲婷婷在线 | 五月婷网 | 亚洲乱码国产乱码精品天美传媒 | 97免费在线观看视频 | 亚洲欧美视频在线 | 蜜臀av一区二区 | 91伊人影院 | 中文字幕在线人 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 激情视频在线高清看 | 国产xxxxx在线观看 | 国产精品亚洲精品 | 日本视频网| 天天射天天搞 | 日本精品久久久久影院 | 97在线观看视频国产 | 亚洲三级精品 | 99色免费| 天天操天天操天天操天天操 | 欧美精品一区二区在线播放 | 青青河边草免费直播 | 日韩欧美不卡 | 国产美女网站在线观看 | 97av在线视频免费播放 | 日韩专区在线观看 | 99精品国产高清在线观看 | 欧美一级艳片视频免费观看 | 韩日精品中文字幕 | 91久久丝袜国产露脸动漫 | 亚洲区二区 | 国内亚洲精品 | 日韩1页 | 国产精品福利无圣光在线一区 | a电影在线观看 | 超碰97av在线 | 免费a级毛片在线看 | 亚洲欧美日韩精品一区二区 | 成人黄色在线观看视频 | 天堂网av 在线 | 丁香花在线视频观看免费 | 国产精品美女久久久久久免费 | 国产精品久久久久婷婷 | 久久久久夜色 | 在线免费观看国产精品 | 精品视频在线视频 | 亚洲永久精品国产 | 亚洲一区免费在线 | 久久精品这里精品 | 探花国产在线 | 久久综合桃花 | 亚洲综合视频在线 | 精品中文字幕在线播放 | 亚洲第一伊人 | 欧美国产日韩一区二区三区 | 午夜黄网 | 免费国产一区二区视频 | 国产视频在线观看一区二区 | 亚洲另类视频在线观看 | 国产精品6 | 日日干夜夜操视频 | 六月丁香激情综合 | 伊人av综合 | 日韩免费视频网站 | 亚洲精品在线观看不卡 | 亚洲黄色一级大片 | 免费高清在线视频一区· | 国产中文欧美日韩在线 | 久久99视频免费 | 国产精品久久99 | 亚洲精品福利在线观看 | 国产精品一区二区av日韩在线 | 狠日日| 国产精品精品国产婷婷这里av | 久久免费国产精品1 | 国产成人精品午夜在线播放 | 在线黄色免费av | 91手机电影| 国产精品毛片一区视频播不卡 | 欧美精彩视频在线观看 | 国产精品va在线观看入 | 丁香婷婷在线观看 | 最近日本韩国中文字幕 | 99午夜| 六月丁香婷婷网 | 日本在线观看中文字幕 | 91免费日韩 | 日韩三级视频在线看 | 97久久久免费福利网址 | 精品国偷自产国产一区 | 中文字幕网站视频在线 | 色综合久久88色综合天天6 | 国产久视频| 日韩午夜精品 | 91精品一区二区三区久久久久久 | 久久成人高清 | 成年人免费看片 | 久久er99热精品一区二区 | 超碰在线97免费 | 亚洲另类视频在线观看 | 国产精品video爽爽爽爽 | 亚洲毛片久久 | 视频91| 99久久99久久综合 | av电影久久| 亚洲首页 | 在线观看一区 | 免费看的av片 | 激情av综合 | 欧美精品亚洲精品日韩精品 | 成年人免费在线观看网站 | 免费日p视频 | 91欧美国产 | 国内精品二区 | 色五月成人 | 国产精品99久久久久久宅男 | 国产精品欧美久久久久三级 | 亚洲一级免费电影 | 中文资源在线官网 | 亚洲综合导航 | 国产一级不卡视频 | 亚洲干视频在线观看 | 亚洲一级性| av免费看网站 | 国内外激情视频 | 天天射网站 | 视频在线观看99 | 又黄又刺激又爽的视频 | 国产日韩精品一区二区三区 | 久久视了| 超碰在线日韩 | 五月天久久狠狠 | 丁香六月激情婷婷 | 成片免费观看视频大全 | 99久热在线精品视频 | 夜夜躁狠狠躁日日躁视频黑人 | 黄色成人影视 | 在线精品视频在线观看高清 | 天天操天天爱天天干 | 国产九色视频在线观看 | 精品久久久99 | 丁香五月网久久综合 | 国产精品美女在线观看 | 五月天高清欧美mv | 成人国产精品久久久久久亚洲 | 日本精品视频免费观看 | 在线欧美最极品的av | 夜夜看av | 99精品久久99久久久久 | 久久国产高清 | 91黄色在线观看 | 亚洲精品短视频 | 国产成人精品一区二区三区网站观看 | 午夜在线国产 | 久久天天拍 | 一区二区三区在线免费观看视频 | 久久国产精品免费一区二区三区 | 国产精品国内免费一区二区三区 | 操碰av| 最近中文字幕免费观看 | 丝袜av一区 | 人人澡澡人人 | 九九久久精品 | 狠狠的操狠狠的干 | 久久这里只精品 | 国产资源精品在线观看 | 午夜久久 | 激情网第四色 | 在线а√天堂中文官网 | 国产无吗一区二区三区在线欢 | 91看片淫黄大片在线播放 | 午夜三级福利 | 成人在线观看影院 | 欧美成亚洲 | 国产一区二区不卡在线 | 久久精品久久久久久久 | 爱情影院aqdy鲁丝片二区 | 一区二区三区电影 | 亚洲精品国产精品国自产在线 | 欧洲一区精品 | 天天综合成人网 | 欧女人精69xxxxxx | 日韩精品视频免费 | 日日干夜夜操视频 | 久久九九免费视频 | 国产精品免费视频久久久 | 国产精品美乳一区二区免费 | 人人干天天射 | 亚洲婷久久 | 国产精品黄色av | 亚州av网站 | 欧美一级电影免费观看 | 午夜国产一区二区三区四区 | 草久久久久久 | av免费福利 | 国产美女网站在线观看 | 欧美日韩国产在线观看 | 蜜桃久久久 | 国产精品 久久 | 欧美黑人猛交 | 在线免费高清一区二区三区 | 久热色超碰 | 色吊丝在线永久观看最新版本 | 亚洲精品视频在线观看网站 | 国产福利一区二区三区在线观看 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲精品欧美成人 | 香蕉网址 | 国产成人黄色网址 | 日日干夜夜操视频 | 又长又大又黑又粗欧美 | 国产免费影院 | 久久久精品一区二区 | 在线观看视频你懂的 | 久久精品亚洲综合专区 | 97理论电影 | 丁香婷婷色月天 | 日韩精品免费一线在线观看 | 亚洲国产中文字幕在线观看 | 久久久久国产精品厨房 | 91九色免费视频 | 国产黄色大全 | 国产青草视频在线观看 | 精品 激情 | 久久久人人爽 | 在线观看视频黄色 | 国产涩涩在线观看 | 久久久久久网址 | 日日操夜夜操狠狠操 | 色综合久久88色综合天天 | 久久久999免费视频 日韩网站在线 | 色综合夜色一区 | 欧美午夜性| 香蕉视频亚洲 | 日韩在线观看第一页 | 亚洲国产日韩精品 | 天堂av在线 | 国产一二三四在线视频 | 人人讲| 亚洲国产成人精品在线 | 久久精品久久久久久久 | 国内外成人免费在线视频 | 久久久穴 | 亚洲中字幕| 97小视频| 久久久99精品免费观看app | 欧美精品亚洲精品日韩精品 | 午夜18视频在线观看 | 久久免费看视频 | 一区中文字幕在线观看 | 97av精品 | 狠狠色狠狠色合久久伊人 | 精品一区二区三区电影 | 97国产 | 久久激情五月丁香伊人 | 国产不卡高清 | 麻豆精品传媒视频 | 日韩欧美一级二级 | 奇米7777狠狠狠琪琪视频 | 欧美一二三专区 | av超碰免费在线 | 欧美最新另类人妖 | 久久伊人热 | 99精品在线免费观看 | 国产成人91| 国产日产精品一区二区三区四区的观看方式 | 国产一区在线观看免费 | 97超碰人人澡人人爱 | 免费看一级一片 | 国产精品成人自产拍在线观看 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产免费av一区二区三区 | 操操操日日日干干干 | 91黄视频在线 | 亚洲视频网站在线观看 | 国产一级不卡毛片 | 最近中文字幕久久 | 四虎成人在线 | 国产一区在线看 | 久久曰视频 | 黄色免费观看网址 | 国产亚洲欧美在线视频 | 久久激情视频 久久 | 在线精品视频在线观看高清 | 五月综合色 | 波多野结衣最新 | 亚洲成人精品 | 男女啪啪网站 | 久久官网 | 狠狠操91 | 中文字幕久久精品一区 | japanese黑人亚洲人4k | 国产伦精品一区二区三区高清 | 午夜影院一区 | 91欧美日韩国产 | www.com久久 | 国产精品一区二区三区久久久 | 奇米影视777四色米奇影院 | 日韩h在线观看 | 国产成人精品午夜在线播放 | 日韩精品免费在线播放 | 福利一区二区 | 国产成人精品一区二三区 | 91麻豆免费版 | 天堂av一区二区 | 91av视频网 | 婷婷在线精品视频 | 亚州国产视频 | 亚洲精品美女久久17c | 成人亚洲精品国产www | 亚洲国产精彩中文乱码av | 中文字幕91视频 | 7799av| 亚洲精品色婷婷 | 日韩午夜一级片 | 2023年中文无字幕文字 | 国产福利免费在线观看 | 黄网站污| 久久久www成人免费精品张筱雨 | 国产主播大尺度精品福利免费 | 国产精品一区二区久久 | 在线播放日韩av | 久久精品综合 | 免费高清在线观看成人 | 91精品在线麻豆 | 国产污视频在线观看 | 亚洲在线网址 | 不卡av在线免费观看 | 日日干av| 91香蕉视频 mp4| 蜜臀久久99精品久久久酒店新书 | 日日干天夜夜 | 成人影片在线免费观看 | 色在线免费视频 | 五月婷婷综合激情网 | 亚州av免费| 欧美色婷婷 | 久操视频在线免费看 | 国产精品免费在线 | 中文字幕日本在线观看 | 在线 高清 中文字幕 | 久久99精品国产91久久来源 | 九九九国产 | 久久综合色综合88 | 久久综合网色—综合色88 | 亚洲精品黄色在线观看 | 亚洲精品在线观看视频 | 婷婷国产一区二区三区 | 中文字幕刺激在线 | 亚洲一区二区三区精品在线观看 | 精品超碰 | 欧美99精品 | 国产精品视频最多的网站 | 久久久免费高清视频 | 久久精品一区二区三区国产主播 | 九色精品 | 色综合中文字幕 | 国产九九热视频 | 国产视频在线免费 | 国产亚洲精品久久久久秋 | 久草免费在线观看 | 久久99精品一区二区三区三区 | 成人91在线观看 | 天天综合日日夜夜 | 五月天婷亚洲天综合网精品偷 | 新版资源中文在线观看 | 911免费视频| 91精品国产99久久久久 | 91原创在线观看 | 日本最新中文字幕 | 欧美亚洲国产日韩 | 在线成人av | 国产欧美中文字幕 | 日韩亚洲在线观看 | 成全免费观看视频 | www中文在线 | 国产一级电影在线 | 久草在线网址 | 欧美日韩在线播放 | 午夜精品久久久99热福利 | 丁香久久 | 中文字幕999| 手机在线看永久av片免费 | 一区在线观看 | 亚洲色图激情文学 | 99视频在线看 | 久久免费视频在线观看30 | 在线国产中文字幕 | 成人午夜电影在线观看 | 99精品视频在线播放免费 | 久久一区二区三区超碰国产精品 | 日韩高清片 | 天天色中文 | 久久97视频| 亚洲观看黄色网 | 9999亚洲| 国产又粗又猛又色 | 97av视频在线观看 | 色婷av| 中文av网| 亚洲精品国产电影 | 日韩在线观看视频一区二区三区 | 国产乱对白刺激视频在线观看女王 | 国产91精品一区二区麻豆网站 | 99热9| 黄网站www | 成年人网站免费观看 | 日韩一区二区三区视频在线 | 日日躁夜夜躁aaaaxxxx | 日本久久精品 | 国产一区91 | 91看片在线观看 | 成人免费网站视频 | 日韩,精品电影 | 国产小视频在线免费观看 | 欧美孕妇与黑人孕交 | 国产一区二区在线观看免费 | 丝袜精品视频 | 91在线视频精品 | 久久高清片 | av在线小说 | 亚洲精品福利在线 | av片子在线观看 | 久久综合激情 | 国产视频在线免费 | 亚洲免费av一区二区 | 国产精品一区久久久久 | 欧美日韩视频一区二区 | av中文在线影视 | 久久久精品欧美一区二区免费 | 欧美日韩一区二区三区在线免费观看 | 色午夜| 日日躁夜夜躁xxxxaaaa | 亚洲精品国产精品国自产观看 | 欧美性受极品xxxx喷水 | 三上悠亚在线免费 | 亚洲精品中文字幕在线观看 | 狠狠五月天 | 国产精品999久久久 久产久精国产品 | av中文在线播放 | 夜夜看av| 亚洲国产一区二区精品专区 | 国内精品视频一区二区三区八戒 | 欧美日韩免费一区 | 在线看成人 | 久久久午夜精品理论片中文字幕 | 美国av大片 | 天天天天天天天操 | 99热在线免费观看 | 黄色一区二区在线观看 | 高清日韩一区二区 | 国产在线一线 | 欧美精品免费一区二区 | 91成人精品国产刺激国语对白 | 手机在线小视频 | 欧美亚洲成人xxx | 亚洲色图激情文学 | 黄污在线观看 | 欧美大片在线观看一区 | 成人影视免费看 | 亚洲最新av在线网站 | av天天草 | 免费黄色特级片 | 天天激情天天干 | 国产亚洲精品久久久久久电影 | 欧美一级片在线观看视频 | 一区二区三区四区久久 | 麻豆传媒在线免费看 | 欧美性天天 | 国产在线小视频 | 天天天天综合 | 日韩大片在线看 | 美女一级毛片视频 | 国产亚洲精品av | 在线观看日韩视频 | 色瓜| 中文字幕 国产专区 | 日韩精品免费在线播放 | 天天干天天干天天干 | 国产黄色片在线免费观看 | 国产精品一区二区在线观看 | 91久久精品一区二区二区 | 久草精品视频在线播放 | 成年人电影免费在线观看 | 国产小视频免费观看 | 国产亚洲精品bv在线观看 | 欧美日韩在线播放 | 亚洲国产三级在线 | 插久久| 欧美精品九九 | 免费av一级电影 | 天天干夜夜擦 | 九色精品免费永久在线 | 亚洲国内精品在线 | av观看久久久 | 国产精品免费久久 | 亚州精品成人 | 国产三级国产精品国产专区50 | 九九免费观看视频 | 中文在线免费看视频 | 欧美精品免费在线 | 欧美激情另类文学 | www.夜夜干.com | 青青草国产在线 | av一区二区三区在线观看 | 高清色免费| 91视频成人免费 | 亚洲另类视频在线 | 香蕉视频91| 日韩影视大全 | 国产亚洲精品福利 | 精品免费观看视频 | 亚洲性视频| 天天操天天艹 | 国产成人精品一区二区三区在线 | 国产精品青草综合久久久久99 | 国产精品二区在线观看 | 一区二区三区 亚洲 | 911香蕉视频 | 草在线视频| 伊人婷婷激情 | 五月婷在线播放 | 色综合久久66 | 天天操天天色天天射 | 国产综合久久 | 精品国自产在线观看 | 免费看片在线观看 | 国产精品一区免费看8c0m | 97超碰站| 香蕉97视频观看在线观看 | 亚洲黄色片在线 | 亚洲一级黄色片 | 久久免费在线观看视频 | 丁香六月色 | 天堂av免费在线 | 狠狠网亚洲精品 | 91成人精品 | 中文字幕在线观看免费高清完整版 | 久久综合九色 | 精品中文字幕在线 | 五月婷婷激情六月 | 午夜视频在线观看网站 | 免费网站黄 | 国产日产高清dvd碟片 | 色综合夜色一区 | 五月天国产精品 | 久久久官网 | 4hu视频 | 丝袜美腿亚洲 | 波多野结衣资源 | www.黄色片网站 | 日产av在线播放 | 亚州五月| 狠狠色噜噜狠狠狠狠2021天天 | 久久久高清免费视频 | 四虎国产永久在线精品 | 黄色a一级片 | 伊人开心激情 | 亚洲美女免费精品视频在线观看 | 国产在线精品国自产拍影院 | 97色综合 | 国产精品久久久777 成人手机在线视频 | 久久av网| 99久久精品午夜一区二区小说 | 欧美激情精品一区 | 婷婷午夜 | 97精品国产| 99视屏| 久久视屏网 | 69精品 | 99久热在线精品视频观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日韩一区二区三区免费电影 | 欧美一级性生活 | 亚洲视频在线观看 | 午夜国产成人 | 91福利试看 | 国产理论影院 | 美女国产网站 | 九九视频精品免费 | 女人18毛片a级毛片一区二区 | 日韩啪啪小视频 | 日韩欧美视频免费看 | 国产成人一区二区三区在线观看 | 三上悠亚一区二区在线观看 | 亚洲精品美女久久17c | 99在线免费视频 | 久久久影院一区二区三区 | 久久99久久久久 | 久久三级毛片 | 久久午夜网 | 麻豆视频在线播放 | 久久久久久久毛片 | 日韩 在线| 在线观看久久久久久 | www.久草.com| 久久av高清 | 国产亚洲欧美在线视频 | 免费观看日韩 | 91看毛片 | 天天操,夜夜操 | 久久久黄色免费网站 | 成年人在线观看网站 | 久久任你操 | 欧美大荫蒂xxx | 成年人视频在线观看免费 | 久久精品综合一区 | www.色综合.com | 91麻豆精品国产自产在线游戏 | 天天做天天爱夜夜爽 | 久久九九久久精品 | 精品国产一区二区三区久久久久久 | 国产一区二区在线播放 | 国产精品福利午夜在线观看 | 成年人国产在线观看 | 久久一区国产 | 国产专区日韩专区 | 久久精品视频网站 | 国产首页 | 免费h精品视频在线播放 | 日韩精品亚洲专区在线观看 | 综合天天久久 | 深爱婷婷激情 | 在线午夜电影神马影院 | 亚洲日本va午夜在线影院 | 国产在线高清视频 | 国产成a人亚洲精v品在线观看 | 亚洲高清91 | 91亚洲精品国偷拍 | 色爱区综合激月婷婷 | 在线成人国产 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 在线韩国电影免费观影完整版 | 久久免费美女视频 | 成人久久久久 | 五月婷婷av在线 | 在线高清 | 激情视频二区 | 在线观看免费国产小视频 | 激情在线免费视频 | 亚洲综合色网站 | 久久久久免费精品视频 | 在线只有精品 | 91免费高清视频 | 亚洲丝袜中文 | av片无限看| 亚洲经典视频在线观看 | 中文字幕丰满人伦在线 | 天天激情| 日本不卡一区二区 | 99久久网站 | 精品视频不卡 | 99视频精品全部免费 在线 | av大全在线播放 | 午夜精品久久久久久久久久久 | 四虎影视4hu4虎成人 | 黄污网站在线观看 | 黄a网| 四虎最新入口 | 久久情侣偷拍 | 日韩一级黄色片 | 精品一区二区三区四区在线 | aaa日本高清在线播放免费观看 | 日韩欧美高清在线观看 | 久久精品一区二区国产 | 亚洲国产剧情 | 欧美日韩精品免费观看 | 97超级碰碰碰碰久久久久 | 国产分类视频 | 色噜噜日韩精品欧美一区二区 | 久久不卡电影 | 国产精品国产精品 | 午夜国产福利在线观看 | 久久人操 | 国产在线观看黄 | 国产精品毛片一区二区 | 亚洲视频一区二区三区在线观看 | 国产精品观看在线亚洲人成网 | 欧美a性 | 天天干 夜夜操 | 99国产精品久久久久老师 | 国产精品18久久久久久vr | 国产视频资源 | 日韩一区二区三区在线观看 | 91人人人 | 久久精品电影 | 天天操天天舔天天爽 | 欧美大荫蒂xxx | 国产日韩视频在线播放 | 国产99久久久国产精品成人免费 | 国产1区在线 | 日韩一区二区三区免费电影 | 91麻豆免费视频 | av大片免费在线观看 | 蜜臀av性久久久久蜜臀av | 少妇视频一区 | 成年人黄色免费视频 | 在线观看视频日韩 | 久久久免费在线观看 | 黄色片网站大全 | 天堂av网站| av中文在线 | av不卡中文字幕 | 国产精品系列在线播放 | 天天干 夜夜操 | a v在线视频 | 中文字幕一区二区三区在线播放 | 国产免费成人av | 久久久久久久99精品免费观看 | 最近久乱中文字幕 | 日韩一级黄色大片 | 国产婷婷在线观看 | 91精品啪在线观看国产线免费 | 色婷婷福利 | 亚洲va欧美va人人爽 | 国产精品免费久久久久久 | 成年人免费在线观看网站 | 玖玖视频免费在线 | 国产精品精品久久久久久 | 亚洲精品videossex少妇 | 91精品办公室少妇高潮对白 | 三级av在线播放 | 天天干天天操天天做 | 天堂av色婷婷一区二区三区 | 最新av在线播放 | 日韩.com | 天天色天天搞 | 超碰在线人人 | 免费在线黄色av | 免费日韩在线 | 96看片| 久久狠狠婷婷 | 在线免费视频 你懂得 | 国产一区二区免费看 | 九九综合九九 | 精品综合久久 | av在线超碰| 国产精品久久久久久久久久妇女 | 亚洲综合国产精品 | 亚洲激情综合 | 一二三精品视频 | 欧美日韩免费一区二区三区 | 中文字幕在线观看三区 | 美女久久久 | av+在线播放在线播放 | 99精品视频免费看 | 成人a在线 | 精品国产电影一区 | 在线三级av | 日韩精品视频在线观看网址 | 96久久精品 | 少妇精品久久久一区二区免费 | 欧美日韩精品二区第二页 | 天天做日日做天天爽视频免费 | 国产精品黑丝在线观看 | 蜜臀久久99精品久久久无需会员 | 91丨九色丨蝌蚪丨老版 | 久亚洲 | 日韩中文字幕免费视频 | 黄色91在线| 美女视频黄是免费的 | 久久久成人精品 | 国内外成人在线 | 亚洲精品国产精品国自产观看 | 精品日韩在线一区 | 九九精品在线观看 | 九九九免费视频 | 在线观看国产www | 在线免费看黄色 | 天天爽天天做 | 一区二区三区日韩视频在线观看 | 黄www在线观看 | 婷婷激情网站 | 国产女人40精品一区毛片视频 | 在线视频精品播放 | 天天操偷偷干 | 日本黄色免费观看 | 中文在线免费看视频 | 麻豆91精品91久久久 | 精品国产成人在线影院 | 1区2区视频 | 午夜国产福利视频 | 欧美地下肉体性派对 | 国产福利精品在线观看 | 深爱激情丁香 | 亚洲一区二区三区四区在线视频 | 激情黄色一级片 | 黄色小说在线免费观看 | 日韩中文字幕第一页 | 欧美一区二区三区在线 | 欧美日韩国内在线 | 日本精品久久久久久 | 日韩精品三区四区 | 午夜精品一区二区三区视频免费看 | 97视频精品 | 搡bbbb搡bbb视频 | 在线激情小视频 | 99久e精品热线免费 99国产精品久久久久久久久久 | 国产精品高清一区二区三区 | 久草在线手机观看 |