2009-11-10 8 views
8

से तस्वीरों को स्नैप करना मुझे उम्मीद है कि एक साधारण सरल लक्ष्य पूरा करने पर कुछ सामान्य मार्गदर्शन प्राप्त करने की उम्मीद है। मेरे पास एक डीएसएलआर कैमरा है (कैनन ईओएस 50 डी) और एक ऐसा एप्लीकेशन लिखने की जरूरत है जो कैमरे को एक तस्वीर लेने के लिए बताएगी। मुझे तस्वीर को कंप्यूटर पर स्थानांतरित करने और संभवतः कैमरे के भंडारण से इसे हटाने की भी आवश्यकता है। मेरे आवेदन में कैमरे से लाइव पूर्वावलोकन प्राप्त करने के लिए एक बोनस होगा। मेरा पर्यावरण विंडोज (या तो एक्सपी प्रो या विस्टा एंटरप्राइज़) और नेट 3.5 (सी #) होगा।विंडोज सी # कैनन एसडीके बनाम पीटीपी या एमटीपी

मैंने कुछ शोध किया है और कुछ विकल्प पाए हैं। मुझे पता है कि काम करेगा, लेकिन भविष्य में केवल कैनन कैमरों का उपयोग करने के लिए मुझे सीमित करता है। मैंने कैनन से एक एसडीके पाया और डाउनलोड किया है जो इस कार्यक्षमता को बहुत सी प्रदान करता है। मैंने एसडीके को देखा है और जब यह व्यापक है और सी में लिखा गया है तो इसमें सी # रैपर हैं जो विकास को थोड़ा तेज करेंगे।

मुझे मिला एक और विकल्प विंडोज पोर्टेबल डिवाइस कहा जाता है। जाहिर है, यह एक एपीआई है जो पीटीपी और एमटीपी मानकों को लागू करने वाले उपकरणों से बात करेगी। यह COM आधारित है और जहां तक ​​मैं कह सकता हूं कि इसमें कोई नेट रैपर नहीं है। हालांकि यह एक शो स्टॉपर नहीं है। मैं कैमरे से बात करने के लिए अपने आवेदन में उपयोग करने के लिए आवश्यक कार्यक्षमता को पी/आमंत्रित कर सकता हूं या प्रबंधित सी ++ डीएलएल लिख सकता हूं।

मैं पॉइंटर्स देने के लिए डब्ल्यूपीडी के साथ अनुभव के साथ किसी को ढूंढ रहा हूं। मैंने प्रलेखन और चित्रों को स्थानांतरित करने और छवियों को हटाने के संदर्भों को देखा है। हालांकि, मैंने चित्र लेने के लिए आदेशों का उल्लेख नहीं किया है, एक पूर्वावलोकन छवि प्राप्त करें, या फोकस/ऑटो फोकस कहें।

+0

मुझे इस प्रश्न का उत्तर देखने में दिलचस्पी है। निजी तौर पर, अगर मैं सिर्फ अपने लिए ऐप लिख रहा हूं, तो मैं पहले कैनन एसडीके को आजमाउंगा। इसके अलावा, यदि आपके पास पहले से ही कैनन लेंस का एक सेट है, तो आप शायद भविष्य में कैनन के साथ चिपके रहेंगे :-)। –

+1

ऐसा लगता है जैसे यह एक महान कोडप्लेक्स प्रोजेक्ट होगा। मुझे एक विद्रोही XTi मिला है और यह काम करने के लिए एक मजेदार अवधारणा की तरह लगता है। यदि आप कोडप्लेक्स प्रोजेक्ट शुरू करने का निर्णय लेते हैं, तो निश्चित रूप से मुझे बताएं! –

+0

कैनन एसडीके के लिए सी ++/सीएलआई रैपर पर काम जारी है। यह एक असली चुनौती रही है। मुझे नहीं लगता कि मैं कोडप्लेक्स प्रोजेक्ट जारी करने में सक्षम हूं क्योंकि मुझे कोड के अधिकार नहीं होंगे। माफ़ कीजिये। मुझे इस संबंध में अधिक अक्षांश होना अच्छा लगेगा। – Nate

उत्तर

2

WPD एपीआई आदेश WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE

मैं यकीन नहीं है कि अपने कैमरे का समर्थन करता है, लेकिन यह काफी सरल पता लगाने के लिए किया जाना चाहिए नहीं कर रहा हूँ प्रदान करता है। यदि आप ड्राइवर विकास किट से "wpdinfo" टूल प्राप्त कर सकते हैं और इसे अपने कैमरे से कनेक्ट कर सकते हैं तो उसे एक WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_COMMANDS कमांड भेजें और देखें कि यह अभी भी छवि कैप्चर कमांड का समर्थन करता है या नहीं। अगर ऐसा है तो आप इसे आज़मा सकते हैं।

+0

धन्यवाद! यही वह है जिसकी तलाश में मैं हूं। अभी तक कोशिश नहीं की है, लेकिन एक बार मुझे मौका मिलेगा। वर्तमान में मैं कैनन एसडीके का उपयोग कर रहा हूं। इसमें इसके मुद्दे हैं, इसका उल्लेख नहीं है कि यह केवल कैनन ईओएस कैमरों के साथ काम करता है ... – Nate

+0

मैंने इसे आजमाया। दुर्भाग्य से यह मेरे ईओएस 50 डी द्वारा समर्थित नहीं था। अगर मेरे पास कभी भी ऐसा करने का प्रयास करने के लिए एक और कैमरा है। मैंने विभिन्न WPD आदेशों का समर्थन करने वाले निर्माताओं की एक सूची के लिए माइक्रोसॉफ्ट डब्ल्यूपीडी देव (डब्ल्यूपीडी ब्लॉग का उपयोग करके) ईमेल किया है, लेकिन उनके पास ऐसी कोई सूची नहीं है। हालांकि, यह पता लगाने में वे बहुत उपयोगी थे कि मुझे डब्ल्यूपीडी का उपयोग कैसे करना चाहिए। – Nate

2

पीटीपी और एमटीपी दोनों डिजिटल प्रोटोकॉल (डीएससी) से फ़ाइलों को स्थानांतरित करने के लिए दोनों प्रोटोकॉल हैं। प्रोटोकॉल नई छवियों को ट्रिगर करने या एक्सपोजर नियंत्रण सेट करने के लिए कोई कार्यक्षमता प्रदान नहीं करते हैं। आप कैमरा विशिष्ट एसडीके का उपयोग कर अटक जाएंगे। यदि आप एकाधिक विक्रेता समर्थन चाहते हैं तो निकोन में एक एसडीके है जो उनके कैमरों के लिए कैनन एसडीके के समान समर्थन प्रदान करता है।

PTP और एमटीपी पर

अधिक जानकारी यहां पाया जा सकता: http://en.wikipedia.org/wiki/Picture_Transfer_Protocol और http://en.wikipedia.org/wiki/Media_Transfer_Protocol

संपादित

मैं WIA आप के लिए दिलचस्प हो सकता है कि, यह मानते हुए अपने कैमरे का चालक एक प्रदान करता है उल्लेख करना भूल गया डब्ल्यूआईए इंटरफेस।

+0

मैंने डब्ल्यूआईए को देखा, जिसे विंडोज पोर्टेबल डिवाइस द्वारा हटा दिया गया है। हालांकि मुझे यकीन नहीं है कि क्या पीटीपी या एमटीपी में यह कार्यक्षमता शामिल है (चित्र लेना), मैंने डब्ल्यूपीडी में जानकारी देखी जो बताती है कि यह हो सकता है। किसी भी दर पर, डब्ल्यूपीडी को (नीचे देखें) माना जाता है, जो मैं इस ऐप के साथ उपयोग करने पर विचार कर रहा था। मैंने बाद में एसडीके का उपयोग करने और संभवतः बाद में डब्ल्यूपीडी का पता लगाने का फैसला किया है। "WPD पर बनाए गए अनुप्रयोग एक डिवाइस का पता लगा सकते हैं, सामग्री भेज और प्राप्त कर सकते हैं, और डिवाइस को भी नियंत्रित कर सकते हैं, उदाहरण के लिए, एक तस्वीर लें ..." http://msdn.microsoft.com/en-us /library/dd388998%28VS.85%29.aspx – Nate

0

यह वास्तव में सामान्य है, लेकिन यह मदद कर सकता है।

मुझे एक ऐसा एप्लिकेशन लिखना पड़ा जिसने अलग-अलग एसडीके के साथ दो अलग-अलग विक्रेताओं से दो अलग-अलग बार कोड स्कैनर का उपयोग किया। मैंने एक इंटरफ़ेस बनाया जिसने उन तरीकों और घटनाओं को परिभाषित किया जिन्हें मैं कोड करना चाहता था, और फिर मेरे इंटरफ़ेस को लागू करने वाले एडाप्टर कक्षाएं लिखीं।

यह मेरे मामले में अच्छी तरह से काम करता था, और एक से दूसरे में स्विचिंग बहुत सहज था। यदि आप एक ही दृष्टिकोण लेते हैं, तो आप एक एसडीके पर पूरी तरह से निर्भर नहीं होंगे।

+0

हां, एक इंटरफ़ेस दिया गया है। मैं जेनेरिक तरीकों के साथ आसानी से बेस क्लास या इंटरफ़ेस बना सकता हूं और आवश्यकतानुसार कार्यान्वित किया जा सकता हूं। हालांकि यह उपयोगी है, कई कैमरा ब्रांडों के लिए एक एसडीके होने से कम काम होगा। धन्यवाद। – Nate

2

TallGanglyGuy की टिप्पणी गलत है। पीटीपी आपको नई छवियों को ट्रिगर करने और एक्सपोजर बदलने आदि की अनुमति देता है।कुछ कैमरों में फर्मवेयर होता है जो केवल कुछ पीटीपी कमांड का खुलासा करता है। ताकि उपयोगकर्ता नई में पीसी/कैमरा संयोजन का लाभ ले सकता है और फिर से अलग अलग तरीकों से, अतिरिक्त सॉफ्टवेयर की आवश्यकता के बिना

PTP, इस तरह के एक तस्वीर लेने के रूप में आम डिवाइस नियंत्रण, का समर्थन करता है।

संबंधित मुद्दे