سؤال

وأنا بحاجة إلى وسيلة لوضع علامة الصور في تطبيقات سطح المكتب دلفي الطريق الفيسبوك يفعل ذلك.

وهذا يشمل بعض الطريق بسهولة إضافة العلامات على الشعب، ومن ثم تحوم الماوس فوق الشخص في الصورة لإظهار العلامة.

والاقتراحات اثنين في الجواب على: " دلفي مكونات لتحديد الوجه ووضع علامات "لا حل هذه.

ولكن ليس لدي أي فكرة من أين تبدأ، وكانت غير قادر على العثور على أفكار على شبكة الإنترنت حول كيفية القيام بذلك. كيف الفيسبوك تفعل ذلك؟ أو ربما هناك مكون دلفي التي من شأنها أن تسمح بذلك.

وماذا سيكون أفضل وسيلة لمحاولة تنفيذ الفيسبوك تشبه علامات؟


وp.s. هذه هي بعض من تعريف API الفيسبوك لهذا: HTTP: //wiki.developers. facebook.com/index.php/Photos.addTag

وهنا هو برنامج جافا الذي يقوم بتنفيذ وظائف علامات الوجه الذي أريد القيام به في بلدي دلفي التطبيق: <لأ href = "http://code.google.com/p/fb-photo-uploader/" يختلط = "نوفولو noreferrer"> FB-الصور رافع

هل كانت مفيدة؟

المحلول

والمعلمات الرئيسية للAPI التي استشهد هي صورة الهوية، والإحداثيات، والعلامة. العلامة يمكن أن تكون إما معرف المستخدم للمستخدم الفيسبوك، أو أنه يمكن أن يكون النص شكل حر (لحالة عندما يكون الموضوع الموسومة غير مستخدم الفيسبوك). الفيسبوك يستخدم واحد فقط تنسيق لأنه يستخدم مناطق حجم ثابت للدلالة على المنطقة المعلمة. والفكرة هي أن تنقر على مركز وجه الشخص، والفيسبوك فقط بتخزين تلك النقطة.

إذا عرض الصورة في عنصر تحكم TImage (هذا هو الخيار الأول واضح، بعد كل شيء)، يمكنك الكشف عن نقرات الماوس مع الأحداث OnMouseDown وOnMouseUp. (الحدث OnClick هو أبسط، ولكن لا اقول لكم الإحداثيات.) مرة واحدة كنت قد حصلت على نقطة، المطالبة تسمية لمرافقة هذه النقطة. يمكنك استخدام تسميات محددة سلفا، مثل هوية المستخدم الفيسبوك، وأو مجرد استخدام النص العادي، أو استخدام شيء من ابتكار الخاصة بك. مسألة ما كنت تستخدم لتمثيل قيمة البطاقة هي متعامد على كل ما الأسئلة الأخرى التي طلبنا حتى الآن.

والنصف الآخر من الفيسبوك لوضع علامات على الصورة هو أن تحريك الماوس فوق الصورة يعرض النص العلامة فوق الصورة، وتحريك الماوس فوق التسميات دون تسليط الضوء على المناطق المرتبطة بها. معالجة الأحداث OnMouseMove وكتابة بعض الرموز لعرض أو إخفاء العلامات والأشكال حسب الاقتضاء. إذا كنت تستخدم TLabel وTShape، قد لا يكون لديك حتى لتعديل الصورة، ولكن تبين هذه الضوابط على أعلى الصورة قد تتداخل مع المزيد من الأحداث OnMouseMove للصورة. لا ينبغي أن يستغرق وقتا طويلا لمحاولة بعض التجارب ومعرفة ما يصلح لك.

نصائح أخرى

وأنا مرتبك قليلا لسؤالك. هل تحاول التفاعل مع الفيسبوك أو مجرد نسخ وظيفة؟

إذا كنت تحاول نسخ وظائف: يجب أن تكون قادرة على عرض الصورة فقط، والسماح للمستخدم تحديد المستطيل، وربما نسخ الصورة إلى نسخة جديدة لإعلام الشخص الآخر مع، وتطبيق علامة في DB. بعض الروابط المفيدة: هنا هو مثال صورة حدد و<لأ href = " http://www.delphitricks.com/source-code/graphic/copy_part_of_one_image_to_another.html "يختلط =" نوفولو noreferrer "> هنا هو المثال نسخة صورة جزء. كنت فعلا تعتقد أنك يمكن أن تفعل صورة مختارة في paintbox لكن لم ألعب في الواقع مع واحد من هؤلاء في الأبد.

إذا كنت تحاول الوصول إلى API: واجهة. NET قد عمل لك. من ما استطيع ان اقول، لا يوجد واجهة COM لذلك كنت لديك لكتابة الرابط الخاص بك أو استخدام التطبيق. NET دلفي. ملاحظة: كل هذه المعلومات تأتي من جوجل ولذا فإنني لن أقسم صعودا وهبوطا أنه حقا الحالة الراهنة للأشياء. وكان الطلب الفيسبوك API الآخر الوحيد رأيت من عام 2007.

إذا كنت تريد أن تفعل التعرف على الوجوه الآلي، مكتبة برمجية مفتوحة للرؤية الحاسوبية من السؤال المشار إليه يبدو وكأنه وسيلة لائقة للقيام بذلك (وخاصة إذا كان لديك الوصول إلى ++ C باني).

Graphic32 مكتبة ، هل يمكن أن يكون عدة طبقات على بعضها البعض في صورة. واحدة من الطبقات التي يتم توفيرها من خارج منطقة الجزاء، هو TRubberbandLayer التي تسمح للمستخدم لتغيير موضع / تغيير حجم طبقة في وقت التشغيل.

وهذا الحدث MouseMove لTImage32 مكون، يحتوي على المعلمة التي تعطي طبقة حاليا تحت المؤشر.

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

ويجب أن يكون مزيج من rubberbandlayers وmousemove الحدث حلا جيدا، على ما أعتقد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top