Schnappen Bilder vom Windows-C# - Canon-SDK vs PTP oder MTP

Ich hoffe, erhalten Sie einige Allgemeine Leitlinien zu vollbringen, die ein scheinbar einfaches Ziel. Ich habe eine DSLR-Kamera (Canon EOS 50D) und der Notwendigkeit, eine Anwendung zu schreiben, die wird Ihnen sagen, die Kamera um ein Bild zu machen. Ich brauche auch übertragen das Bild auf den computer sowie möglicherweise das löschen von der Kamera Speicher. Ein bonus wäre eine live-Vorschau von der Kamera in meiner Anwendung. Meine Umgebung wird Windows (entweder XP Pro oder Vista Enterprise) und .Net 3.5 (C#).

Ich habe einige der Forschung getan und fand ein paar Optionen. Ich weiß funktionieren, aber schränkt mich nur mit Canon-Kameras in der Zukunft. Habe ich gefunden und heruntergeladen ein SDK von Canon bietet eine Menge Funktionalität. Ich habe mir über die SDK und es ist zwar umfangreich und in C geschrieben ist, hat es, C# - Wrapper, der die Entwicklung beschleunigen ein bisschen.

Andere Möglichkeit, die ich gefunden habe, ist Windows Tragbare Geräte. Offenbar ist es eine API zur Verfügung, sprechen Sie mit Geräten, die zur Umsetzung von PTP-und MTP-standards. Es ist COM-basierte und soweit ich sagen kann hat es keine .Net-Wrapper. Dies ist jedoch nicht ein show-stopper. Ich könnte P/Invoke die Funktionen, die ich brauche oder schreiben Sie eine Verwaltete C++ - DLL zu verwenden in meiner Anwendung zu sprechen, um die Kamera.

Ich bin auf der Suche nach jemand mit Erfahrung mit WPD geben mir Hinweise. Ich habe mir die Dokumentation durchgelesen und gesehen, dass Verweise auf das übertragen von Bildern und zum löschen von Bildern. Ich habe allerdings nicht gesehen, Erwähnung von Befehlen, um ein Bild zu machen, erhalten Sie ein Vorschau-Bild, oder sagen Fokus/auto-Fokus.

  • Ich bin daran interessiert, dass die Antwort auf diese Frage. Persönlich, wenn ich nur schreiben das app für mich, ich würde versuchen, die Canon SDK-ersten. Außerdem, wenn Sie bereits eine Reihe von Canon-Objektive, Sie werden wahrscheinlich kleben mit Canon in die Zukunft :-).
  • Das klingt so, als wäre es eine große CodePlex-Projekt. Ich habe eine Rebel XTi und das klingt wie ein Spaß-Konzept zu arbeiten. Wenn Sie sich entscheiden, starten Sie ein CodePlex-Projekt, auf jeden Fall lassen Sie mich wissen!
  • Die Arbeit geht auf eine C++/CLI wrapper für die Canon SDK. Es war eine echte Herausforderung. Ich glaube nicht, dass ich in der Lage wäre zu release ein CodePlex-Projekt, weil ich nicht die Rechte an dem code. Sorry. Ich hätte gerne mehr Spielraum in dieser Hinsicht.
  • Wünschte, ich könnte. Es ist schon eine lange Zeit und dieser code wird eingewickelt in mein ehemaliger Arbeitgeber des Geistigen Eigentums. Ich landete mit dem Canon SDK und das einwickeln der C-code mit C# P/Invoke-Klassen. Es war ziemlich anspruchsvoll. Die Canon SDK war ziemlich kryptisch und IMO viel zu direkt gebunden an die MTP. Was ich wirklich wollte, war eine Bibliothek, um einfach nur sagen "take a picture" oder "gib mir die live-Ansicht-Vorschau". Zu der Zeit, war schwer zu kommen durch. Seitdem habe ich gelernt, es gibt eine Bibliothek unter Linux, die das machen werden, leider habe ich noch nicht gearbeitet und weiß nicht, Ihren Namen.
InformationsquelleAutor Nate | 2009-11-10
Schreibe einen Kommentar