문제

나는 겉보기에 간단한 목표를 달성하는 데 대한 일반적인 지침을 받기를 바라고 있습니다. DSLR 카메라 (Canon EOS 50D)가 있으며 카메라에 사진을 찍도록 알리는 응용 프로그램을 작성해야합니다. 또한 사진을 컴퓨터로 전송하고 카메라의 스토리지에서 삭제해야합니다. 보너스는 내 응용 프로그램의 카메라에서 라이브 미리보기를 얻는 것입니다. 내 환경은 Windows (XP Pro 또는 Vista Enterprise) 및 .NET 3.5 (C#)입니다.

나는 몇 가지 연구를했고 몇 가지 옵션을 찾았습니다. 내가 아는 하나는 효과가 있지만 앞으로 캐논 카메라 만 사용하도록 제한합니다. 이 기능을 많이 제공하는 Canon에서 SDK를 찾아 다운로드했습니다. 나는 SDK를 살펴 보았고 C로 광범위하고 쓰여졌지만 C# 래퍼가있어 개발 속도를 약간 높일 수 있습니다.

내가 찾은 또 다른 옵션을 Windows 휴대용 장치라고합니다. 분명히 PTP 및 MTP 표준을 구현하는 장치와 대화하는 것은 API입니다. 그것은 com 기반이며 내가 말할 수있는 한 .net 래퍼가 없다고 말할 수 있습니다. 그러나 이것은 쇼 스토퍼가 아닙니다. 필요한 기능을 호출하거나 카메라와 대화하기 위해 응용 프로그램에서 사용할 관리 된 C ++ DLL을 작성할 수 있습니다.

나는 WPD 경험이있는 사람을 찾고있는 사람을 찾고 있습니다. 나는 문서를 잊어 버렸고 이미지 전송 및 이미지 삭제에 대한 참조를 보았다. 그러나 사진을 찍거나 미리보기 이미지를 얻거나 Focus/Auto-Pocus를 말하는 명령에 대한 언급을 보지 못했습니다.

도움이 되었습니까?

해결책

WPD API는 명령 WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE를 제공합니다

카메라가 지원하는지 확실하지 않지만 알아볼 수있을 정도로 간단해야합니다. 드라이버 개발 키트에서 "wpdinfo"도구를 가져 와서 카메라를 연결하여 시작할 수 있다면 WPD_COMMAND_CAPABILITION_SGET_SUPPORTED_COMMANDS 명령을 보내고 아직 이미지 캡처 명령을 지원하는지 확인하십시오. 그렇다면 시도해 볼 수 있습니다.

다른 팁

PTP와 MTP는 디지털 스틸 카메라 (DSC)에서 파일을 전송하기위한 프로토콜입니다. 이 프로토콜은 새로운 이미지를 트리거하거나 노출 제어를 설정하는 기능을 제공하지 않습니다. 카메라 별 SDK를 사용하여 붙어 있습니다. 여러 공급 업체 지원을 원한다면 Nikon은 카메라의 Canon SDK와 유사한 지원을 제공하는 SDK를 가지고 있습니다.

PTP 및 MTP에 대한 자세한 정보는 다음을 참조하십시오.http://en.wikipedia.org/wiki/picture_transfer_protocol그리고http://en.wikipedia.org/wiki/media_transfer_protocol

편집하다

나는 그것을 언급하는 것을 잊었다 WIA 카메라의 드라이버가 WIA 인터페이스를 제공한다고 가정하면 흥미로울 수 있습니다.

Tallganglyguy의 의견이 잘못되었습니다. PTP를 사용하면 새로운 이미지를 트리거하고 노출을 변경할 수 있습니다. 일부 카메라는 PTP 명령 중 일부만 노출되는 펌웨어가 있습니다.

PTP는 사진 촬영과 같은 일반적인 장치 컨트롤을 지원하므로 사용자가 추가 소프트웨어가 필요하지 않고 새롭고 다른 방식으로 PC/카메라 조합을 다시 활용할 수 있습니다.

내 EOS 프레임 워크를 시도하십시오. https://github.com/esskar/canon.eos.framework

IMHO SDK와 함께 제공되는 .CS 파일보다 더 나은 대안입니다.

이것은 실제로 일반적이지만 도움이 될 수 있습니다.

SDK가 다른 두 개의 다른 공급 업체의 두 개의 다른 바코드 스캐너를 사용한 응용 프로그램을 작성해야했습니다. 코딩하려는 메소드와 이벤트를 정의한 인터페이스를 만들고 인터페이스를 구현하는 어댑터 클래스를 작성했습니다.

이것은 제 경우에는 잘 작동했으며, 한쪽에서 다른 것으로 전환하는 것은 꽤 완벽했습니다. 당신이 같은 접근법을 사용했다면, 당신은 하나의 SDK에 전적으로 의존하지 않을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top