Ключевыми параметрами API, который вы указали, являются идентификатор изображения, координаты и тег. Тег может быть либо идентификатором пользователя Facebook, либо текстом произвольной формы (для случая, когда помеченный объект не является пользователем Facebook). Facebook использует только одну координату, потому что он использует регионы фиксированного размера для обозначения отмеченной области; идея заключается в том, что вы нажимаете на центр лица человека, и Facebook просто сохраняет эту точку.
Если вы отображаете изображение в элементе управления TImage
(в конце концов, это очевидный первый вариант), вы можете обнаружить щелчки мыши с помощью событий OnMouseDown
и OnMouseUp
. (Событие OnClick
проще, но не сообщает вам координаты.) После того, как вы получили точку, попросите метку сопровождать эту точку. Вы можете использовать предопределенные ярлыки, такие как идентификаторы пользователей Facebook, или просто использовать обычный текст, или использовать что-то свое. Вопрос о том, что вы используете для представления значения тега, является ортогональным к любым другим вопросам, которые вы задавали до сих пор.
Другая половина тегов фотографий Facebook состоит в том, что при наведении курсора мыши на изображение отображается текст тега поверх изображения, а при наведении курсора мыши на метки ниже выделяются связанные области. Обрабатывайте OnMouseMove
события и пишите некоторый код для отображения или скрытия надписей и фигур в зависимости от ситуации. Если вы используете TLabel
и TShape
, вам, возможно, даже не придется изменять изображение, но показ этих элементов управления в верхней части изображения может помешать дальнейшим событиям OnMouseMove
для изображения. Это не должно занять много времени, чтобы попробовать некоторые эксперименты и посмотреть, что работает для вас.