网络识图,delphi识别,百度图片

 时间:2026-02-15 17:51:57

1、放置2个button,2个edit,2个image

网络识图,delphi识别,百度图片

2、button1的过程

var

  ms:TMemoryStream;

  jpg:TJPEGImage;

begin

  try

  jpg:=TJPEGImage.Create;

  ms:=TMemoryStream.Create;

  idhtp1.Get(edt1.Text,ms);

  ms.Position:=0;

  jpg.LoadFromStream(ms);

  img1.Picture.Assign(jpg);

  jpg.SaveToFile('c:\123.jpg');

  except

   ms.Free;

  end;

3、button2的过程,即是识别图片过程,这个过程完全模拟百度上传图片识别

var

   i:Integer;

   pd:tstringlist;

   s,sName,sUrljpg:string;

   ms,ms1:TStringStream;

   jpg:TJPEGImage;

 //  Cookies : TIdCookieManager;

   mstrCookie: string;

begin

  try

   jpg:=TJPEGImage.Create;

   ms:=TStringStream.Create('');

   ms1:=TStringStream.Create('');

   img1.Picture.Bitmap.SaveToStream(ms);

   idhtp1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko';

   idhtp1.Request.AcceptLanguage:='zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.7,en;q=0.5,es-DO;q=0.3,es;q=0.2';

  begin

   s:=(idhtp1.Post('http://image.baidu.com/pictureup/uploadshitu?'

   +'fr=flash&fm=index&pos=upload',mps));

   s:=(idhtp1.Get('http://image.baidu.com'+s));

   sName:=GetStringBetween(s,'guessWord','.split') ;

   sName:=Trim(StringReplace (sName,'''',

'', [rfReplaceAll]));

   sName:=Trim(StringReplace (sName,':',

'', [rfReplaceAll]));

   sUrljpg:=GetStringBetween(s,'<img class="guess-newbaike-left-img" src="','<div class="guess-newbaike-left-similarity">') ;

   sUrljpg:=Trim(StringReplace (sUrljpg,'amp;',

'', [rfReplaceAll]));

   sUrljpg:=Trim(StringReplace (sUrljpg,'</div>',

'', [rfReplaceAll]));

   sUrljpg:=Trim(StringReplace (sUrljpg,'">',

'', [rfReplaceAll]));

 //  sUrljpg:=TIdURI.URLDecode(sUrljpg);

   idhtp1.Request.UserAgent := '';

   mstrCookie := 'aaa=5555&bb=12345';

   idhtp1.Request.AcceptEncoding := '';

   if mstrCookie <> '' then

   begin

    idhtp1.Request.CustomHeaders.Add('Cookie: ' + mstrCookie);

   end;

   idhtp1.Request.Referer:='https://www.baidu.com';

   idhtp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko';

   idhtp1.Get(sUrljpg,ms1);

   ms1.Position:=0;

   jpg.LoadFromStream(ms1);

   img2.Picture.Assign(jpg);

   edt2.Text:='我猜您的图片是:'+Utf8ToAnsi(sName);

  // ShowMessage(sUrljpg);

   end;

  except

    MPS.Free;

    ms.Free;

    ms1.Free;

  end;

4、必要的过程,取字符串与字符串中间的字符

function GetStringBetween(const FullStr, StrLeft, StrRight: String): string;

var

idx_Start,idx_End,iStrCnt: Integer;

begin

Result:='';

idx_Start := Pos(StrLeft,FullStr)+Length(StrLeft);

idx_End:= Pos(StrRight,FullStr);

iStrCnt:= idx_End - idx_Start;

Result:=Copy(FullStr,idx_Start,iStrCnt);

end;

网络识图,delphi识别,百度图片

  • 爆柠四季春怎么做?
  • 男人补肾壮阳食物【当归鹿茸炖鸡】
  • 苹果干的做法
  • 泰国菩提岛旅游攻略
  • 干椿叶煎鸡蛋饼
  • 热门搜索
    治污减霾手抄报 遵纪守法手抄报图片 诚信手抄报花边 预防流感手抄报 向国旗敬礼手抄报图 诚信手抄报版面设计图 感恩老师的手抄报图片 美术手抄报 手抄报素材 万圣节手抄报图片