Domanda

Ho bisogno di un modo per etichettare le foto in un'applicazione desktop Delphi il modo in cui Facebook lo fa.

Che include un modo di aggiungere facilmente i tag sul popolo, e poi passare il mouse sopra la persona nella foto per mostrare il tag.

I due suggerimenti nella risposta a: " Delphi Componenti per l'identificazione facciale e Tagging " non risolvono questo.

Ma non ho idea da dove cominciare, e sono stato in grado di trovare idee sul web su come fare questo. Come Facebook lo fa? O forse c'è una componente per Delphi che gli permetterà.

Quale sarebbe il modo migliore per cercare di attuare il tagging Facebook-come?


P.S. Si tratta di alcune delle definizione API di Facebook per questo: http: //wiki.developers. facebook.com/index.php/Photos.addTag

Ecco un programma Java che implementa la codifica funzionalità volto che voglio fare nella mia Delphi app: fb-photo-uploader

È stato utile?

Soluzione

I parametri chiave delle API hai citato sono l'identificazione dell'immagine, le coordinate, e il tag. Il tag può essere sia l'ID utente di un utente di Facebook, oppure può essere a forma libera di testo (per il caso in cui il soggetto con tag non è un utente di Facebook). Facebook utilizza solo una coordinata perché utilizza regioni di dimensione fissa per indicare un'area etichettato; l'idea è che si fa clic sul centro del volto di una persona, e Facebook solo negozi che punto.

Se si visualizza un'immagine in un controllo TImage (che è la prima scelta ovvia, dopo tutto), è possibile rilevare clic del mouse con gli eventi OnMouseDown e OnMouseUp. (L'evento OnClick è più semplice, ma non vi dico le coordinate.) Una volta che hai acquisito un punto, richiede per un'etichetta per accompagnare quel punto. È possibile utilizzare le etichette prestabilite, come ID utente di Facebook, o semplicemente utilizzare il testo normale, o utilizzare qualcosa di tuo ideazione. La questione di ciò che si utilizza per rappresentare un valore di tag è ortogonale a qualsiasi altra domanda tu hai chiesto finora.

L'altra metà di Facebook foto di tagging è che spostando il mouse sull'immagine visualizza il testo tag sull'immagine, e muovendo il mouse sopra le etichette sotto evidenziano le regioni associate. Gestire gli eventi OnMouseMove e scrivere del codice per visualizzare o nascondere le etichette e le forme a seconda dei casi. Se si utilizza TLabel e TShape, si potrebbe anche non essere necessario modificare l'immagine, ma che mostra i comandi sulla parte superiore dell'immagine potrebbe interferire con ulteriori eventi OnMouseMove per l'immagine. Non dovrebbe prendere troppo tempo per provare alcuni esperimenti e vedere che cosa funziona per voi.

Altri suggerimenti

lkessler, ho appena letto la tua risposta a Marshall Fryman, quindi può avere un paio di opzioni per voi:

THotSpotImage - Se si dispone già di componenti TMS .. .

ImageEn - nel caso in cui le avete già .. .

risposta di W2M # 3 penso che in seguito ho bisogno di ottenere tutti i pixel interni delle mie scelte, in modo Come posso salvare le mie selezioni / oggetti?

  

Salva selezione solo salva la selezione stessa. Esso non salva l'immagine   all'interno della selezione:

     

procedura SaveSelectionToFile (FileName const: archi);   SaveSelectionToFile salva la selezione corrente nel file specificato.   Esempio   ImageEnView1.Select (10,10,100,100);   ImageEnView1.SaveSelectionToFile ( 'selezione1');   ..   sel1.Position: = 0;   ImageEnView1.LoadSelectionFromFile ( 'selezione1'); // questo è come   Selezionare (10,10,100,100)

Sono un po 'confusa per quanto riguarda la tua domanda. Stai cercando di interagire con Facebook o semplicemente copiare la funzionalità?

Se si sta tentando di copiare la funzionalità: Si dovrebbe essere in grado di visualizzare solo l'immagine, permette di selezionare il rettangolo, possibilmente copiare l'immagine di una nuova copia di notificare l'altra persona con, e applicare un tag in un DB. Alcuni link utili: qui è un esempio di selezione delle immagini e qui è l'esempio di copia porzione di immagine. Mi piacerebbe davvero che si possa fare l'immagine di selezione in un paintbox, ma non si è effettivamente giocato con uno di quelli per sempre.

Se si sta tentando di accedere alle API: l'interfaccia .NET può funzionare per voi. Da quello che posso dire, non v'è alcuna interfaccia COM in modo che avrebbe dovuto scrivere il proprio connettore o utilizzare un'applicazione .NET Delphi. Nota: tutte queste informazioni proviene da Google quindi non giuro su e giù che è davvero lo stato attuale delle cose. L'unica altra richiesta di Facebook API che ho visto era a partire dal 2007.

Se si vuole fare il riconoscimento facciale automatico, OpenCV dalla questione fa riferimento si presenta come un modo decente per farlo (soprattutto se si ha accesso a C ++ Builder).

Graphic32-biblioteca , è possibile avere diversi strati su a vicenda in un'immagine. Uno degli strati che è fornito dalla scatola, è un TRubberbandLayer che permette all'utente di riposizionare / ridimensionare il livello in fase di esecuzione.

MouseSpostato per il TImage32-componente, ha un parametro che dà il livello correntemente sotto il cursore.

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

Una combinazione di rubberbandlayers e MouseMove evento dovrebbe essere buona soluzione, credo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top