Heim Backend-Entwicklung C#.Net-Tutorial .Net-Tipps zum Spielen von SLR

.Net-Tipps zum Spielen von SLR

Mar 12, 2017 pm 02:04 PM
.net

Dieser Artikel beschreibt die Verwendung von .Net zum Spielen von Spiegelreflexkameras

Hintergrund

Ich habe den Garten seit mehr als einem Jahr nicht mehr besucht und meine Branche gewechselt Ja, aber es ist auch lohnend, mit verschiedenen F&E-Kulturen in Kontakt zu kommen, wie zum Beispiel dem technischen Fluss im Gaming-Kreis, dem Geschäftsfluss im E-Commerce-Kreis, dem künstlerischen Fluss in den Medien Kreis usw.

Der Hintergrund dieser Anwendung ist die Automatisierung von Spiegelreflexkameras. Der Chef möchte die Programmierung für die USBSchnittstelle durchführen, aber es handelt sich um eine zu einfache Technologie, um sie zu verwendenc# ist dafür nicht sehr geeignet. Nachdem wir eine Weile gefeilscht haben, lasst es uns für die Spiegelreflexkamera tun.

Angenommen, wir benötigen N-Spiegelreflexgeräte, um auf eine Blume zu zielen, alle 30 Sekunden ein Foto aufzunehmen und es automatisch auf Weibo zu veröffentlichen.

Technische Punkte

Canon SDK

WIA-Standard

Canon SDK stellt dll NET-Entwicklern zur Verfügung zitiert, dass auf die entsprechenden Kameramodelle von Canon durch Aufrufen des SDK leicht zugegriffen werden kann, die .NET-Version des SDK jedoch keinen Zugriff auf die Daten in der Kamera bietet. Daher wird es zum Problem, die Daten in der Spiegelreflexkamera zu erhalten. Einige Schüler sind möglicherweise verwirrt. Wenn die Spiegelreflexkamera an den USB-Anschluss des Computers angeschlossen ist, wird ein Laufwerksbuchstabe generiert. Kann es nicht ausreichen, DriveInfo.GetDrives () direkt zu verwenden, um den Laufwerksbuchstabendurchlauf zu erhalten? Lassen Sie mich Sie zunächst informieren. Die Klassifizierung von USB-Slave-Geräten kann aus dem bInterfaceClass-Byte abgerufen werden, das dem USB-Geräteschnittstellendeskriptor entspricht. Typische Codes für bInterfaceClass sind 1, 2, 3, 6, 7, 8, 9, 10, 11, 255. Die jeweiligen Bedeutungen sind 1-Audio: Zeigt ein Audio-Gerät an. 2-Kommunikationsgerät: Kommunikationsgeräte wie Telefon, Moden usw. 3-HID: Mensch-Computer-Interaktionsgerät wie Tastatur, Maus usw. 6-Bild-Bildgebungsgeräte wie Scanner, Kameras usw. Manchmal können auch Digitalkameras in diese Kategorie eingeordnet werden. 7-Drucker-Klasse. Wie Einweg-, Zwei-Wege-Drucker usw. 8-Massenspeicher-Massenspeicherklasse. Alles, was über bestimmte Speicherkapazitäten verfügt, kann in diese Kategorie eingeordnet werden. Beispielsweise fallen die meisten Digitalkameras in diese Kategorie. 9-Hub-Klasse. 11-Chipkarte/Smartcard. 255 – herstellerspezifisch. Benutzerdefinierte Klasse, die hauptsächlich für einige Spezialgeräte verwendet wird. Wie Schnittstellenadapterkarte usw.

Die Gerätetypen, die unsere Laufwerksinfo erfassen kann, sind


public enum DriveType
    {
        // Summary:
        //     The type of drive is unknown.
        Unknown = 0,
        //
        // Summary:
        //     The drive does not have a root directory.
        NoRootDirectory = 1,
        //
        // Summary:
        //     The drive is a removable storage device, such as a floppy disk drive or a
        //     USB flash drive.
        Removable = 2,
        //
        // Summary:
        //     The drive is a fixed disk.
        Fixed = 3,
        //
        // Summary:
        //     The drive is a network drive.
        Network = 4,
        //
        // Summary:
        //     The drive is an optical disc device, such as a CD or DVD-ROM.
        CDRom = 5,
        //
        // Summary:
        //     The drive is a RAM disk.
        Ram = 6,
    }
Nach dem Login kopieren


Im Allgemeinen sind USB-Festplattengeräte entfernbar. Die Spiegelreflexkamera ist jedoch ein tragbares Gerät und dieser Typ kann nicht mit der GetDrives-Methode abgerufen werden. Windows Systems32 bietet eine Reihe von API-Methoden für tragbare Geräte

.Net 玩单反的技巧

Hier wähle ich WIA, die Abkürzung für Windows Die derzeit verfügbare Version ist WIA 1.0, ein digitaler Bilderfassungsdienst , der in Windows Millennium Edition (Windows Me) oder höheren Versionen von Windows-Systemen bereitgestellt wird. Er kann auch zur Verwaltung digitaler Bilderfassungsgeräte verwendet werden . WIA ist eine COM-Komponente, die mithilfe von Out-of-Process-Diensten implementiert wird. WIA vermeidet Leistungseinbußen während der Bilddatenübertragung, indem es einen eigenen Datenübertragungsmechanismus bereitstellt (IWiaDataTransfer-Schnittstelle). Die leistungsstarke IWiaDataTransfer-Schnittstelle nutzt Shared Memory, um Daten an Client-Programme zu übertragen. WIA besteht aus drei Hauptkomponenten: Geräte-Manager, Minidriver-Dienstbibliothek und Geräte-Minidriver.
◆Geräte-Manager: Bildgeräte aufzählen, Geräteattribute abrufen,
Ereignisse für Geräte erstellen und Geräte-Objekte erstellen; ◆Minidriver-Dienstbibliothek: alle geräteunabhängigen Funktionen ausführen Dienst;
◆Device Minidriver Explanation Mapping: WIA
Attribute und Befehle zu einem bestimmten Gerät. Über die Informationen in DeviceManagerClass().DeviceInfos können wir die
Geräteinformationen sammeln, die zu CameraDeviceType in der Spiegelreflexkamera gehören. Für Video und andere Typen gibt es andere ähnliche Methoden .


        public void DownJpgFromAllCamera()
        {
            int i = 1;
            foreach (IDeviceInfo DevInfo in new DeviceManagerClass().DeviceInfos)
            {
                if (DevInfo.Type == WiaDeviceType.CameraDeviceType)
                {
                    string DeviceID = DevInfo.DeviceID;
                    Device wDevice = DevInfo.Connect();
                    Devparam dev = new Devparam {wiaDevice=wDevice, DeviceID = DeviceID, index = i };
                    new Thread((Camera) => 
                        {
                            DownJpg(((Devparam)Camera).wiaDevice, ((Devparam)Camera).DeviceID, ((Devparam)Camera).index);
                        }
                        ).Start(dev);
                 
                  
                    i++;
                }
            }
        }
Nach dem Login kopieren


Sprechen wir über das SDK.net-Version bietet 5 Arten der Handle-Delegierung


        public delegate uint EdsProgressCallback( uint inPercent, IntPtr inContext, ref bool outCancel);
        public delegate uint EdsCameraAddedHandler(IntPtr inContext);
        public delegate uint EdsPropertyEventHandler(uint inEvent, uint inPropertyId, uint inParam, IntPtr inContext); 
        public delegate uint EdsObjectEventHandler( uint inEvent, IntPtr inRef, IntPtr inContext); 
        public delegate uint EdsStateEventHandler( uint inEvent, uint inParameter, IntPtr inContext);
Nach dem Login kopieren


Der erste wird für die Datenverarbeitung wie Datenkopieren, Bildspeichern usw. verwendet.

Sekunden für den PC, um neue Kamerageräte zu entdecken

Der dritte wird für Benachrichtigungen über Änderungen im Status von Attributen wie Datenströmen in der Kamera verwendet, beispielsweise eine Reihe von Änderungen, die durch das Aufnehmen von Bildern verursacht werden.

Der vierte wird für Dateivorgänge verwendet, z B. Dateierstellung, Löschung usw.

Die fünfte wird für die Statuszeit der Kamera selbst verwendet, z. B. abnormales Ein- und Ausschalten usw.

Bitte beachten Sie dazu das Demoprogramm Verschiedene Anwendungsszenarien. Obwohl die Lademethode Multithreading aktiviert, ist die Festplatten-E/A selbst nur seriell. Es heißt, dass Sie es beim Spielen nicht ernst nehmen müssen

Rendering

Neu hinzugefügte Kameraausrüstung

.Net 玩单反的技巧

Programmgesteuerte Kamera zum Aufnehmen von Bildern

.Net 玩单反的技巧

Einladen -Kamerafotodaten

.Net 玩单反的技巧


Das obige ist der detaillierte Inhalt von.Net-Tipps zum Spielen von SLR. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man verschiedene Symbole in der C -Sprache verwendet Wie man verschiedene Symbole in der C -Sprache verwendet Apr 03, 2025 pm 04:48 PM

Die Nutzungsmethoden von Symbolen in der C-Sprachabdeckung Arithmetik, Zuordnung, Bedingungen, Logik, Bitoperatoren usw. werden für grundlegende mathematische Operationen verwendet, Zuordnungsoperatoren werden zur Zuordnung und Addition verwendet, Subtraktion, Multiplikationszuordnung und Abteilungszuweisung, Zustandsbetreiber werden für Unterschiede verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Zeiger, Markierungen am Ende der Datei und nicht numerische Werte.

So verwenden Sie char Array in C -Sprache So verwenden Sie char Array in C -Sprache Apr 03, 2025 pm 03:24 PM

Das Char -Array speichert Zeichensequenzen in der C -Sprache und wird als char Array_name [Größe] deklariert. Das Zugriffselement wird durch den Einweisoperator weitergeleitet, und das Element endet mit dem Null -Terminator '\ 0', der den Endpunkt der Zeichenfolge darstellt. Die C -Sprache bietet eine Vielzahl von String -Manipulationsfunktionen wie Strlen (), Strcpy (), Strcat () und strcmp ().

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Was ist die Rolle von CHAR in C -Saiten? Was ist die Rolle von CHAR in C -Saiten? Apr 03, 2025 pm 03:15 PM

In C wird der Zeichenentyp in Saiten verwendet: 1. Speichern Sie ein einzelnes Zeichen; 2. Verwenden Sie ein Array, um eine Zeichenfolge darzustellen und mit einem Null -Terminator zu enden. 3. Durch eine Saitenbetriebsfunktion arbeiten; 4. Lesen oder geben Sie eine Zeichenfolge von der Tastatur aus.

Wie man mit Sonderfiguren in der C -Sprache umgeht Wie man mit Sonderfiguren in der C -Sprache umgeht Apr 03, 2025 pm 03:18 PM

In der C -Sprache werden Sonderzeichen durch Escape -Sequenzen verarbeitet, wie z. B.: \ n repräsentiert Linienbrüche. \ t bedeutet tab charakter. Verwenden Sie Escape -Sequenzen oder Zeichenkonstanten, um Sonderzeichen darzustellen, wie z. B. char c = '\ n'. Beachten Sie, dass der Backslash zweimal entkommen muss. Verschiedene Plattformen und Compiler haben möglicherweise unterschiedliche Fluchtsequenzen. Bitte wenden Sie sich an die Dokumentation.

Wie man CHO in C -Sprache umwandelt Wie man CHO in C -Sprache umwandelt Apr 03, 2025 pm 03:21 PM

In der C -Sprache kann die char -Typ -Konvertierung direkt in einen anderen Typ konvertiert werden, wenn: Casting: Verwenden von Casting -Zeichen. Automatische Konvertierung des Typs: Wenn ein Datentyp einen anderen Werttyp berücksichtigen kann, wandelt der Compiler diese automatisch um.

Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

Der Unterschied zwischen char und wchar_t in der C -Sprache Der Unterschied zwischen char und wchar_t in der C -Sprache Apr 03, 2025 pm 03:09 PM

In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

See all articles