Delphi: Cum să etichetați fotografii cale Facebook face

voturi
0

Am nevoie de o modalitate de a eticheta fotografiile într-o aplicație desktop Delphi modul în care Facebook o face.

Aceasta include o modalitate de a adăuga cu ușurință etichetele peste oameni, și apoi plutind mouse-ul peste persoana din fotografie pentru a arăta eticheta.

Cele două sugestii în răspunsul dat: „ Delphi Componente pentru identificarea feței și Tagging “ nu rezolvă acest lucru.

Dar nu am nici o idee de unde să înceapă, și au fost în imposibilitatea de a găsi idei pe web cu privire la modul de a face acest lucru. Cum se face pe Facebook? Sau poate exista o componentă pentru Delphi, care va permite.

Care ar fi cel mai bun mod de a încerca să pună în aplicare etichetarea Facebook-cum ar fi?


PS Aceasta este o parte din definiția API Facebook pentru: http://wiki.developers.facebook.com/index.php/Photos.addTag

Aici este un program Java care implementează funcționalitatea de etichetare fata pe care vreau să fac în aplicația mea Delphi: fb-foto-Uploader

Întrebat 01/04/2009 la 01:02
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
0

Sunt un pic confuz cu privire la întrebarea dumneavoastră. Încerci să interacționeze cu Facebook sau să copiați funcționalitatea?

Dacă încercați să copiați funcționalitatea: Tu ar trebui să fie capabil să afișeze doar imaginea, lasa utilizatorul selectează dreptunghiul, eventual , copiați imaginea la o nouă copie a notifica celeilalte persoane cu, și să aplice o etichetă într - un DB. Unele link - uri utile: aici este un exemplu de imagine , selectați și aici este un exemplu porțiune de imagine copie. De fapt , aș crede că ar putea face selectați imaginea într - un paintbox , dar nu au jucat de fapt cu unul dintre cei din totdeauna.

Dacă încercați să accesați API: Interfața .NET poate lucra pentru tine. Din ceea ce pot spune, nu există nici o interfață COM, astfel încât să ar trebui să scrie propriul conector sau de a folosi o aplicație .NET Delphi. Notă: toate aceste informații vine de la Google, astfel că nu voi jura în sus și în jos, că este într-adevăr starea actuală a lucrurilor. Singura cerere API Facebook am văzut a fost din 2007.

Dacă doriți să faceți o recunoaștere automată a feței, OpenCV de la întrebarea de referință arată ca un mod decent de a face acest lucru (mai ales dacă aveți acces la C ++ Builder).

Publicat 01/04/2009 la 02:34
sursa de către utilizator

voturi
4

Parametrii cheie ale API-ați citat sunt ID-ul de imagine, coordonatele, și tag-ul. Eticheta poate fi fie ID-ul de utilizator al unui utilizator Facebook, sau poate fi în formă liberă de text (pentru cazul în care subiectul etichetat nu este un utilizator Facebook). Facebook folosește doar o coordonată deoarece utilizează regiuni de dimensiuni fixe pentru a desemna o zonă de etichetat; ideea este că faceți clic pe centrul feței unei persoane, și Facebook doar stochează acel punct.

Dacă afișați o imagine într - un TImagecontrol al (care este prima alegere evidentă, la urma urmei), puteți detecta clicuri de mouse cu OnMouseDownși OnMouseUpevenimente. (The OnClickEvenimentul este mai simplu, dar nu vă spun coordonatele.) După ce ați achiziționat un punct, cere o etichetă care să însoțească acest punct. Puteți utiliza etichete prestabilite, cum ar fi ID - urile de utilizator Facebook, sau de a folosi doar un text obișnuit, sau de a folosi ceva din propria născocire. Problema pe care o utilizați pentru a reprezenta o valoare de tag - ul este ortogonală la orice alte întrebări pe care le - ați cerut până acum.

Cealaltă jumătate etichetarea fotografiilor Facebook este că mutarea mouse - ul peste imaginea afișează textul tag - ul peste imaginea, și se deplasează mouse - ul peste etichetele de mai jos evidenția regiunile asociate. Manipulați OnMouseMoveevenimente și scrie un cod pentru a afișa sau a ascunde etichete și forme , după caz. Dacă utilizați TLabelși TShape, s - ar putea nici măcar nu trebuie să modificați imaginea, dar care arată aceste controale pe partea de sus a imaginii ar putea interfera cu alte OnMouseMoveevenimente pentru imagine. Nu ar trebui să ia prea mult timp pentru a încerca unele experimente și a vedea ce funcționează pentru tine.

Publicat 01/04/2009 la 04:25
sursa de către utilizator

voturi
3

lkessler, am citit doar răspunsul la Marshall Fryman, așa că poate avea o serie de opțiuni cuplu pentru tine:

THotSpotImage - Dacă aveți deja componente TMS ...

ImageEn - în cazul în care aveți deja le ...

A se vedea w2m lui Răspuns # 3 cred că în continuare am nevoie de a lua toți pixelii de selecții mele interioare, astfel cum i se poate salva selecțiile mele / obiecte?

Salvare selecție salvează doar selecția în sine. Ea nu salvează imaginea în interiorul selecției:

Procedura SaveSelectionToFile (NumeFișier const: string); SaveSelectionToFile salvează selecția curentă în fișierul specificat. Exemplul ImageEnView1.Select (10,10,100,100); ImageEnView1.SaveSelectionToFile ( 'selection1'); .. sel1.Position: = 0; ImageEnView1.LoadSelectionFromFile ( 'selection1'); // acest lucru este ca Select (10,10,100,100)

Publicat 01/04/2009 la 18:43
sursa de către utilizator

voturi
0

În Graphic32-bibliotecă , puteți avea mai multe straturi unul pe celălalt într - o imagine. Unul dintre straturile care este prevăzut din cutie, este un TRubberbandLayer care permite utilizatorului pentru a repoziționa / redimensiona stratul în timpul rulării.

Evenimentul mousemove pentru TImage32-component, are un parametru care dă stratul prezent sub cursor.

type TImgMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer) of object;

O combinație de rubberbandlayers și mousemove-eveniment ar trebui să fie o soluție bună, cred.

Publicat 02/04/2009 la 08:25
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more