Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   WIA y Cámara Reflex conectada por USB "busy" (https://www.clubdelphi.com/foros/showthread.php?t=92763)

lago 24-01-2018 13:33:23

WIA y Cámara Reflex conectada por USB "busy"
 
Hola, llevo un tiempo queriendo implementar la función de transferencia de fotos de la camara fotográfica al PC "al vuelo" en mi programa.
Utilizo una librería que controla las funciones básicas de WIA para transferir imágenes. Mi problema es que necesito que lo haga según saco la foto. Básicamente lo que hace LightRoom con su disparo remoto.

Explico el problema... al conectar la cámara mediante USB ésta se pone en modo transferencia de datos. Puedo verla como dispositivo WIA y puedo acceder al contenido de la tarjeta de memoria. Peeerooo, no puedo utilizar la cámara para sacar una foto mientras esta conectada por USB. En este caso cuando abro "Canon Utility2" la cámara sale del modo transferencia y puedo disparar con ella... de hecho hasta puedo controlarla remotamente con la utilidad de Canon. Al cerrar la utilidad, la cámara vuelve al modo transferencia de ficheros.

Veo que hay un Canon SDK y un Nikon SDK, y un XXX SDK, no creo que la manera de poder hacerlo sea trasteando con tooooodos los SDK de cada marca.

Buscando por el foro y por google entero hasta rusia y alemania he encontrado poca cosa, he visto la WIALIB_TBL pero no encuentro la función adecuada...

¿Alguien conoce la manera de gestionar esto utilizando WIA?

Muchas gracias de antemano.

Casimiro Notevi 24-01-2018 14:06:32

Puedes echar un vistazo al código fuente de algunos de esos programas. Seguro que hay más de uno libre y puedes trastear con el mismo.
Quizás buscando por "canikon hack", o algo así :)

lago 24-01-2018 14:25:00

Hola Casimiro, curioso lo del canikon hack si :p en su día probé el MagicLantern para mi 50D que desbloqueaba la funcionalidad de grabar video! lástima que aunque el software estaba preparado, el hardware sin estabilizador de imagen ... ni con trípode... unos meneitos chulos :)

El caso es que llevo toda la mañana buscando algo así, encontre http://digicamcontrol.com/ que es software libre pero me mareo al ver el código, intentaré analizarlo con más calma a ver si consigo encontrar algo...

Gracias por tu respuesta!

lago 26-01-2018 09:13:07

Pues sí... para estas gaitas parece ser que toca lidiar con los SDK de cada marca... para los cuales hay que hacer una solicitud... he conseguido los últimos de Canon y a ver si los de Nikkon son majetes y me dan acceso también :)

El caso es que el proyecto esta en Visual Studio 2005 y he tenido que trastear un rato para hacerlo funcionar con Builder. Por si a alguien le resulta últil pongo como lo hice:


En el raiz del SDK tenemos varios directorios, dentro de "EDSDKv0306-1W\Windows\EDSDK" encontramos "HEADER" donde debemos copiar las tres librerias al path de nuestra aplicación:

Código:

-ar---      31/07/2017    17:41          56486 EDSDK.h
-ar---      31/07/2017    17:41          12382 EDSDKErrors.h
-ar---      31/07/2017    17:41          52636 EDSDKTypes.h

Dentro de "EDSDKv0306-1W\Windows\EDSDK\Library" tenemos el fichero EDSDK.lib que funciona con Visual Studio. He probado a convertirlo para BC con la salvaculos "coff2omf.exe", pero no.
Aparentemente la conversión es correcta, pero al intentar compilar da un Error al linkar la librería.

Después de un rato, he utilizado "implib.exe" sobre la DLL principal:

Código:

EDSDKv0306-1W\Windows\EDSDK\Dll> implib.exe EDSDK_BC_Implib.lib .\EDSDK.dll
La he importado al proyecto, he añadido #include "EDSDK.h" a la aplicación y con EdsInitializeSDK(); arrancado el SDK...

Siempre quedo fascinado cuando el software hace que el hardware haga algo "físico"... parece magia... ;)


La franja horaria es GMT +2. Ahora son las 18:28:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi