문제

Facebook이 수행하는 방식으로 Delphi 데스크탑 응용 프로그램에서 사진을 태그하는 방법이 필요합니다.

여기에는 사람들보다 태그를 쉽게 추가 한 다음 사진의 사람 위에 마우스를 호버링하여 태그를 표시하는 방법이 포함됩니다.

주어진 대답의 두 가지 제안 : "얼굴 식별 및 태깅을위한 델파이 구성 요소"이것을 해결하지 마십시오.

그러나 어디서부터 시작 해야할지 모르겠으며 웹 에서이 작업을 수행하는 방법에 대한 아이디어를 찾을 수 없었습니다. Facebook은 어떻게합니까? 또는 델파이를위한 구성 요소가있을 수 있습니다.

Facebook과 같은 태깅을 구현하는 가장 좋은 방법은 무엇입니까?


추신 : 이것은 이것에 대한 Facebook의 API 정의 중 일부입니다. http://wiki.developers.facebook.com/index.php/photos.addtag

다음은 Delphi 앱에서하고 싶은 얼굴 태그 기능을 구현하는 Java 프로그램입니다. FB- 포토-퍼플 로더

도움이 되었습니까?

해결책

인용 한 API의 주요 매개 변수는 그림 ID, 좌표 및 태그입니다. 태그는 Facebook 사용자의 사용자 ID 일 수 있거나 자유 형식 텍스트가 될 수 있습니다 (태그가있는 주제가 Facebook 사용자가 아닌 경우). Facebook은 고정 크기 영역을 사용하여 태그가 지정된 영역을 표시하기 때문에 하나의 좌표 만 사용합니다. 아이디어는 사람의 얼굴 중심을 클릭하고 Facebook은 그 지점을 저장한다는 것입니다.

a에 사진을 표시하는 경우 TImage 제어 (결국 첫 번째 선택입니다). 마우스 클릭을 감지 할 수 있습니다. OnMouseDown 그리고 OnMouseUp 이벤트. (그만큼 OnClick 이벤트는 더 간단하지만 좌표는 알려주지 않습니다.) 포인트를 획득 한 후에는 레이블이 그 지점에 동반되도록 프롬프트합니다. Facebook의 사용자 ID와 같은 미리 정해진 레이블을 사용하거나 일반 텍스트를 사용하거나 자신의 고안을 사용할 수 있습니다. 태그 값을 나타내는 데 사용하는 것에 대한 질문은 지금까지 요청한 다른 질문과 직교합니다.

Facebook의 사진 태깅의 나머지 절반은 이미지 위로 마우스를 움직이면 이미지 위에 태그 텍스트를 표시하고 아래의 라벨 위로 마우스를 연결한다는 것입니다. 핸들 OnMouseMove 이벤트 및 라벨 및 모양을 적절하게 표시하거나 숨기는 코드를 작성하십시오. 사용하는 경우 TLabel 그리고 TShape, 이미지를 수정할 필요조차 없지만 이미지 위에 해당 컨트롤을 표시하면 더욱 방해가 될 수 있습니다. OnMouseMove 이미지에 대한 이벤트. 실험을 시도하고 자신에게 맞는 것을 보는 데 너무 오래 걸리지 않아야합니다.

다른 팁

LKESSLER, 나는 당신의 답변을 Marshall Fryman에 읽었으므로 몇 가지 옵션이있을 수 있습니다.

thotspotimage - 이미 TMS 구성 요소가있는 경우 ...

Imageen - 이미 가지고있는 경우 ...

보다 W2M의 답변 #3 추가로 선택의 모든 내부 픽셀을 가져와야한다고 생각합니다. 어떻게 선택/객체를 저장할 수 있습니까?

선택을 저장하면 선택 자체를 저장하면됩니다. 선택 내부의 이미지를 저장하지 않습니다.

절차 saveselectionTofile (const filename : string); SaveSelectionTofile 현재 선택을 지정된 파일에 저장합니다. 예제 ImageEnview1.select (10,10,100,100); ImageEnview1.saveselectionTofile ( 'selection1'); .. Sel1.Position : = 0; imageEnview1.loadSelectionFromFile ( 'selection1'); // 이것은 선택과 같습니다 (10,10,100,100)

나는 당신의 질문에 대해 약간 혼란스러워합니다. Facebook과 상호 작용하거나 기능을 복사하려고합니까?

기능을 복사하려는 경우 : 이미지를 표시 할 수 있어야합니다. 사용자가 사각형을 선택하고 이미지를 새 사본으로 복사하여 상대방에게 알리고 DB에 태그를 적용하십시오. 유용한 링크 : 여기 선택된 이미지 예제이며 여기 사본 이미지 부분 예입니다. 실제로 페인트 박스에서 선택 이미지를 수행 할 수 있다고 생각하지만 실제로 영원히 그 중 하나와 함께 연주하지는 않았습니다.

API에 액세스하려고하는 경우 : .NET 인터페이스가 효과가있을 수 있습니다. 내가 알 수있는 것에서 COM 인터페이스가 없으므로 자신의 커넥터를 작성하거나 .NET Delphi 앱을 사용해야합니다. 참고 :이 모든 정보는 Google에서 나온 것이므로 실제로 현재의 상태라고 맹세하지 않습니다. 내가 본 유일한 다른 Facebook API 요청은 2007 년입니다.

자동 얼굴 인식을 원한다면 참조 된 질문에서 OpenCV는이를 수행하는 괜찮은 방법처럼 보입니다 (특히 C ++ 빌더에 액세스 할 수있는 경우).

에서 Graphic32-library, 이미지에서 서로 여러 레이어를 가질 수 있습니다. 상자에서 제공되는 레이어 중 하나는 Trubberbandlayer 이를 통해 사용자는 런타임에 레이어를 재배치/크기를 조정할 수 있습니다.

Timage32-component의 MouseMove 이벤트에는 현재 커서 아래에 레이어를 제공하는 매개 변수가 있습니다.

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

고무 대역 레이어와 MouseMove-Event의 조합은 좋은 해결책이어야한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top