سؤال

آمل أن أتلقى بعض التوجيهات العامة حول إنجاز هدف بسيط على ما يبدو. لدي كاميرا DSLR (Canon EOS 50D) وتحتاج إلى كتابة تطبيق سيخبر الكاميرا لالتقاط صورة. أحتاج أيضا إلى نقل الصورة إلى الكمبيوتر وربما حذفها من تخزين الكاميرا. ستكون المكافأة للحصول على معاينة مباشرة من الكاميرا في طلبي. بيئتي ستكون Windows (إما إما XP Pro أو Vista Enterprise) و .NET 3.5 (C #).

لقد قمت ببعض الأبحاث وجدت بضع خيارات. واحد أعرفه سيعمل، لكنه يحد مني لاستخدام كاميرات كانون فقط في المستقبل. لقد وجدت وتنزيل SDK من Canon التي توفر الكثير من هذه الوظائف. لقد بحثت عبر SDK وبينما تكون واسعة ومكتوبة في C لديها مغلفة C # التي ستسرع التطوير قليلا.

يسمى خيار آخر قمت بتدوين أجهزة Windows المحمولة. على ما يبدو، هو API الذي سيتحدث مع الأجهزة التي تنفذ معايير PTP و MTP. هو COM مقرها وبقدر ما أستطيع أن أقول أنه ليس لديه مغلفة .NET. هذا لا يوجد موقف إظهار. أستطيع أن أحذر الوظيفة التي أحتاجها أو اكتب DLL مدار C ++ لاستخدامها في طلبي للتحدث إلى الكاميرا.

أبحث عن أي شخص لديه خبرة مع WPD لتعطيني مؤشرات. لقد تراجعت الوثائق وشاهدت مراجع لنقل الصور وحذف الصور. ومع ذلك، لم أشاهد، أذكر الأوامر لالتقاط صورة، احصل على صورة معاينة، أو أقول التركيز التركيز / التركيز التلقائي.

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

المحلول

يوفر WPD API الأمر wpd_command_still_image_capture_initiate

لست متأكدا مما إذا كانت الكاميرا تدعمها ولكن يجب أن تكون بسيطة بما يكفي لمعرفة ذلك. إذا كنت تستطيع الحصول على أداة "WPDInfo" من مجموعة تطوير برنامج التشغيل وبدء تشغيلها باستخدام الكاميرا المتصلة، ثم أرسلها أمر WPD_COMMAND_CAPATICATICIATIONS_GET_SUPPORTED_COMMANDS ومعرفة ما إذا كان يدعم أمر التقاط الصور الثابتة. إذا كان الأمر كذلك، فيمكنك إعطاء ذلك المحاولة.

نصائح أخرى

PTP و MTP كلاهما بروتوكولات لنقل الملفات من كاميرا ثابتة رقمية (DSC). توفر البروتوكولات أي وظيفة لتشغيل صور جديدة، أو وضع عنصر تحكم التعرض. سوف تكون عالقا باستخدام الكاميرا المحددة SDK. إذا كنت تريد دعم البائع المتعدد يحتوي Nikon على SDK يوفر دعما مماثلا مثل Canon SDK لكاميراتهم.

يمكن العثور على مزيد من المعلومات حول PTP و MTP هنا:http://en.wikipedia.org/wiki/picture_transfer_protocol.وhttp://en.wikipedia.org/wiki/media_transfer_protocol.

تعديل

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

التعليق من Tallganglyguy غير صحيح. يسمح لك PTP بتشغيل صور جديدة وتغيير التعرض، إلخ. تحتوي بعض الكاميرات على البرامج الثابتة التي تعرض فقط بعض أوامر PTP.

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

جرب إطاري EOS: https://github.com/esskar/canon.eos.framework.

IMHO إنه بديل أفضل ثم ملف .cs الذي يأتي مع SDK.

هذا حقا عام، ولكن قد يساعد.

اضطررت إلى كتابة تطبيق يستخدم ماسحات ضوئية شريطية مختلفة من موردين مختلفين مع مختلف SDK. لقد قمت بإنشاء واجهة تحدد الأساليب والأحداث التي أردت كودها، ثم كتب فئات محول التي نفذت واجهتي.

هذا يعمل بشكل جيد في حالتي، والتبديل من واحد إلى آخر كان سلس جدا. إذا أخذت نفس النهج، فلن تعتمد تماما على SDK واحد.

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