OJODIGITAL

 
perfectRAW/perfectBLEND Foro para tratar todo lo relacionado con estos dos programas basados en DCRaw para el revelado de imágenes RAW y el blending de imágenes para aumentar su rango dinámico

Respuesta
  #1 (permalink)  
Antiguo 10-may-2008, 13:08
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 484
Enviar un mensaje por MSN a ManuelLlorens
Instrucciones para compilar

Instrucciones y configuración para compilar en casa dcraw, perfectRAW y perfectBLEND con el entorno de desarrollo que estamos utilizando. Deberían corren en cualquier win32 pero aún no sé si funcionan en win64.

Más adelante pondré instrucciones para compilar en otros entornos (cygwin,VS) y plataformas (linux, MacOS) conforme lo vayan logrando otros miembros del equipo.

El archivo dcraw.c es el mismo para el EXE y la DLL no hace falta bajárselo dos veces. No vale la versión original de Coffin, que puede descargarse aquí.

PARA WIN32 CON DEV-C++ MINGW Y VISUAL C# 2005 EXPRESS EDITION

Para dcraw.exe (versión modificada por _GUI_ y por mí):
  1. Instalar DEV-C++ con el compilador MinGW.
  2. Crear una carpeta c:\dcraw y copiar dentro:
    1. dcraw.c
    2. dcraw_exe.dev (el archivo de proyecto)
  3. Abirir el proyecto dcraw_exe.dev y dar a compilar sin ejecutar.
  4. Hecho.
Para dcraw.dll (común a perfectRAW y perfectBLEND):
  1. Instalar DEV-C++ con el compilador MinGW.
  2. Crear una carpeta c:\dcraw y copiar dentro:
    1. dcraw.c
    2. dcraw.h
    3. dll.c
    4. test.c
    5. dcraw_dll.dev (el archivo de proyecto)
    6. test.dev (proyecto que prueba la dll)
  3. Abrir el proyecto test.dev y dar a compilar, no a ejecutar.
  4. Abrir el proyecto dcraw_dll.dev y dar a compilar y ejecutar.
  5. Hecho.
El programa test busca un archivo llamado 1.cr2 dentro de la carpeta c:\dcraw\test, pero es muy fácil cambiarlo por cualquier otro editando test.c.

Para perfectRAW:
  1. Instalar Visual C# 2005 Express Edition.
  2. Descargar la solución.
  3. Descomprimir el ZIP en alguna carpeta.
  4. Abrir el archivo con extensión .sln.
  5. Ejecutar.
Espera encontrar c:\dcraw\dcraw.dll, por lo que habrá que haber compilado antes la DLL como se explica arriba. Además, también busca el 1.cr2, pero esta vez os deja elegir el archivo antes de revelarlo.

Para perfectBLEND:

Aún no hay nada que compilar, tirará de la misma DLL y el entorno de desarrollo será el mismo que para perfectRAW.

Un saludo:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos
Responder Citando
Publicidad
  #2 (permalink)  
Antiguo 10-may-2008, 17:12
Habitual
 
Fecha de Ingreso: junio-2004
Ubicación: El Prat de Llobregat
Mensajes: 513
Ole!!!
He conseguido compilarlo todo y me ha funcionado.

Pero he tenido algunos problemas:

DCRaw.dll
Me ha dado varios problemas al compilar. No soy un experto en Dev-C++ pero los he conseguido solucionar añadiendo 4 defines.
#define NO_JPEG
#define NO_LCMS
#define DJGPP
#define _MINGW_

Otro problema que tiene el proyecto es que genera la dll dcraw_dll.dll, que no es el nombre que usa el PerfectRaw.

PerfectRAW
Lo he compilado con el Visual Studio Express 2008. Al abrirlo me lo ha convertido sin problemas. He tenido que activar la opción de compilación "Permitir código no seguro".
Otro problema es que el path del dcraw está en el código y lo he tenido que modificar al sitio dónde yo tenia mi dll. Modificando el código y poniendo [DllImport(@"dcraw.dll")]
la busca en el directorio del exe, con lo que creo que es la mejor solución.

Sólo me queda felicitaros por el proyecto.
__________________
Algún día sabré hacer fotos, mientras voy a seguir practicando y recbiendo vuestras críticas.

Mi galeria personal: www.ventayol.net
Mi galeria en photo.net: http://www.photo.net/photos/vertex
Responder Citando
  #3 (permalink)  
Antiguo 10-may-2008, 22:17
Avatar de dgmaga
Vivo en los foros
 
Fecha de Ingreso: abril-2005
Ubicación: Fránkfort del Meno
Mensajes: 1.818
Gracias por publicar esta información!

Pregunta muy básica, supongo.

He intentado compilar dcraw.exe y dcraw.dll y me dice que no encuentra los archivos jpeglib.h y lcms.h.

¿Son archivos estándar que me bajo de cualquier sitio o necesito versiones específicas?

Daniel
__________________
Retratero dominguero / Parásito fotográfico

Beste mundu bat posible eta beharrezkoa da - Otro mundo es posible y necesario.

Aunque parezca mentira, la cabeza sirve para algo más que para sujetar las orejas.

Última edición por dgmaga; 10-may-2008 a las 22:32.
Responder Citando
  #4 (permalink)  
Antiguo 10-may-2008, 23:39
Lleva poco por aquí
 
Fecha de Ingreso: agosto-2007
Ubicación: Barcelona
Mensajes: 31
Para que te funcione, tienes que hacer lo que indica VERTEX.

En dcraw.c al principio del fichero y tras los #define que ya hay, añade lo siguiente

#define NO_JPEG
#define NO_LCMS
#define DJGPP
#define _MINGW_

Con esto ya te creara la libreria

---------------------------------------------------------
Para la creacion del dcraw.exe no consigo que lo compile, da un error de una referencia no definida

Compilador: Default compiler
Building Makefile: "C:\dcraw\Makefile.win"
Ejecutando make...
make.exe -f "C:\dcraw\Makefile.win" all
gcc.exe dcraw.o -o "dcraw_exe.exe" -L"C:/Dev-Cpp/lib"
C:/Dev-Cpp/lib/libmingw32.a(main.o)(.text+0x106):main.c: undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
make.exe: *** [dcraw_exe.exe] Error 1
Ejecución Terminada

Última edición por Eduardo Cañadas; 10-may-2008 a las 23:47.
Responder Citando
  #5 (permalink)  
Antiguo 11-may-2008, 00:02
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 484
Enviar un mensaje por MSN a ManuelLlorens
Cita:
Iniciado por vertex Ver Mensaje
DCRaw.dll
Me ha dado varios problemas al compilar. No soy un experto en Dev-C++ pero los he conseguido solucionar añadiendo 4 defines.
#define NO_JPEG
#define NO_LCMS
#define DJGPP
#define _MINGW_
Pues sí, se me olvidó meter eso en el archivo de proyecto, porque yo lo tengo configurado por defecto en las opciones del compilador. Lo voy a poner en su sitio y vuelvo a subir el archivo de projecto. Gracias por darte cuenta. Para arreglarlo bien quita los defines que has puesto y mete dentro del menú Project -> Project Options -> Parameters -> Compiler las siguientes opciones: -DNO_JPEG -DNO_LCMS -D_MINGW_

Cita:
Iniciado por vertex Ver Mensaje
Otro problema que tiene el proyecto es que genera la dll dcraw_dll.dll, que no es el nombre que usa el PerfectRaw.
Eso también hay que configurarlo en el mismo sitio, pero creo que sí lo había puesto en el archivo de proyecto. Lo miraré, de momento cámbialo en el menú Project -> Project Options -> Build Options -> Override output filename. De nuevo lo siento, lo voy a cambiar y lo subo. Gracias.

PerfectRAW
Cita:
Iniciado por vertex Ver Mensaje
Lo he compilado con el Visual Studio Express 2008. Al abrirlo me lo ha convertido sin problemas. He tenido que activar la opción de compilación "Permitir código no seguro".
Eso si no usa el VS2005 no debería pedírtelo.

Cita:
Iniciado por vertex Ver Mensaje
Otro problema es que el path del dcraw está en el código y lo he tenido que modificar al sitio dónde yo tenia mi dll. Modificando el código y poniendo [DllImport(@"dcraw.dll")]
la busca en el directorio del exe, con lo que creo que es la mejor solución.
Eso más que un problema es una elección . Cuando distribuyamos el producto evidentemente quedará configurado como lo tienes tú ahora, pero para desarrollar me es más cómodo apuntar al directorio donde se recompila la DLL.

Cita:
Iniciado por vertex Ver Mensaje
Sólo me queda felicitaros por el proyecto.
Muchas gracias. ¿Qué plataforma tienes? XP, Vista... no será de 64 bits, ¿verdad?

Un saludo:
_________________________________
Acabo de actualizar los archivos de proyecto dcraw_dll.dev y dcraw_exe.dll para solucionar los problemas que relata Eduardo en su post anterior. Ahora funcionará todo a la primera. Si ya habíais descargado estos archivos podéis volver a descargarlos o solucionarlo como le he explicado a él. Disculpas.

Un saludo:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos

Última edición por ManuelLlorens; 11-may-2008 a las 00:06. Razón: Fusión automática de mensajes para prevenir autosubir post
Responder Citando
  #6 (permalink)  
Antiguo 11-may-2008, 10:37
Habitual
 
Fecha de Ingreso: junio-2004
Ubicación: El Prat de Llobregat
Mensajes: 513
He estado jugando un rato con los proyectos y al final los he subido a Google Code.
Así que si quereis compilar el proyecto sólo os tenies que bajar el código de Google Code.

Manuel he hecho algunos cambios en los proyectos para tener un poco mas organizadas las cosas, espero que no te moleste.
En el svn he creado dos directorios

trunk\dcraw --> Para el dcraw.dll
trunk\PerfectRAW --> Para el perfect raw
cuándo tengamos el PerfectBlend ya lo crearemos.

dcraw
He creado una estructura de directorios para tener las cosas mas organizadas:
dcraw --> Contiene los proyectos y makefiles
dcraw\src --> Contiene el código fuente
dcraw\obj --> Aquí se generaran los obj
dcraw\bin --> Aquí se generará la dll

He modificado el proyecto para que ponga todos estos directorios. Además he añadido un makefile addicional que copia la dcraw.dll a los directorios bin del PerfectRAW al terminar la compilación, con lo que ya podem poner [DllImport(@"dcraw.dll")] en el C# ya que la dll siempre estará allí.

PerfectRAW
He creado una estructura similar
PerfectRAW --> Proyectos (yo he subido el de 2008)
PerfectRAW\bin --> Aquí se generan los ejecutables
PerfectRAW\obj --> Directorio para los obj
PerfectRAW\src --> Todo el código fuente está aquí
PerfectRAW\Properties --> No sé q es esté directorio peró lo he dejado dónde estaba.

A ver que os parece la nueva estructura.

Yo creo que lo mejor es que todos usemos el svn de Google Code, así tendremos menos problemas. Es muy fàcil.
__________________
Algún día sabré hacer fotos, mientras voy a seguir practicando y recbiendo vuestras críticas.

Mi galeria personal: www.ventayol.net
Mi galeria en photo.net: http://www.photo.net/photos/vertex
Responder Citando
  #7 (permalink)  
Antiguo 11-may-2008, 11:27
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 484
Enviar un mensaje por MSN a ManuelLlorens
Cita:
Iniciado por vertex Ver Mensaje
Manuel he hecho algunos cambios en los proyectos para tener un poco mas organizadas las cosas, espero que no te moleste.
En el svn he creado dos directorios
¡Cómo me va a molestar! De eso se trata, de que cada uno aporte lo que sabe hacer. Yo haré lo que pueda para coordinar los esfuerzos de cada uno, pero nada más. Yo estuve un rato peleándome con el SVN y no me aclaré, ahora seguro que le cojo el truco.

Lo que sí me pregunto es lo siguiente: en este momento, por ejemplo, mi versión de dcraw.c es superior a la que hay en el FTP y de hecho incompatible con ella. El proyecto de VC# sin embargo no está aún actualizado a la versión de la DLL. Si subo el dcraw.c me cargo la posibilidad de que recompiléis... me espero y lo subo todo machacando lo que hay, mantenemos la versión anterior y esto abre una nueva. ¿Cómo va eso?

Lo que sí que os pido es que hasta que no termine de consolidar lo que ya está hecho no os pongáis a modificar el código, estoy a punto de "liberarlo" todo. Como ya puse, hay tareas para que vayáis trabajando en paralelo sin que nos molestemos, de momento.

Un saludo:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos
Responder Citando
  #8 (permalink)  
Antiguo 11-may-2008, 12:04
Habitual
 
Fecha de Ingreso: junio-2004
Ubicación: El Prat de Llobregat
Mensajes: 513
Mi consejo es que te esperes a tener el VC# modificado.
Lo mas importante es subir código que se pueda compilar y probar. No es nada bueno subir cosas que no compilan o dejan la aplicación sin funcionar.
__________________
Algún día sabré hacer fotos, mientras voy a seguir practicando y recbiendo vuestras críticas.

Mi galeria personal: www.ventayol.net
Mi galeria en photo.net: http://www.photo.net/photos/vertex
Responder Citando
  #9 (permalink)  
Antiguo 11-may-2008, 12:46
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 484
Enviar un mensaje por MSN a ManuelLlorens
Va todo genial, pero me falla el copy que has puesto en el copydll.mak, me dice El sistema no puede hallar el archivo especificado, creo que se refiere al comando copy porque el caso es que las carpetas están bien y la DLL existe. He cambiado el copy por un xcopy /Y y ha funcionado, ¿lo dejo así?

He creado una nueva solución 2005, he cambiado el nombre del directorio a perfectRAW y he modificado el código de la DLL y del C#. En cuando corra lo subo todo para que podáis probar.

Un saludo y gracias:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos

Última edición por ManuelLlorens; 11-may-2008 a las 12:53.
Responder Citando
  #10 (permalink)  
Antiguo 11-may-2008, 13:09
Lleva poco por aquí
 
Fecha de Ingreso: agosto-2007
Ubicación: Barcelona
Mensajes: 31
VERTEX

En el proyecto de dcraw la copia no funciona porque el nombre del directorio de destio es "pefectRaw", falta una r

En el proyecto de Test, da error de compilacion porque no encuentra "libdcra.a", hay que modificar el proyecto para indicarle donde esta ".\bin\libdcraw.a"
Responder Citando
  #11 (permalink)  
Antiguo 11-may-2008, 13:23
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 484
Enviar un mensaje por MSN a ManuelLlorens
Cuando termine de probar la DLL desde C# subo todo con los proyectos OK. Gracias por probar.
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos
Responder Citando
  #12 (permalink)  
Antiguo 11-may-2008, 13:42
Avatar de dgmaga
Vivo en los foros
 
Fecha de Ingreso: abril-2005
Ubicación: Fránkfort del Meno
Mensajes: 1.818
Sólo quería comentar que con las aclaraciones de Vértex y Eduardo he podido compilar todo.

Y si yo puedo compilarlo, quiere decir que cualquiera puede hacerlo...

De momento me da un error cuando intento revelar un raw pero volveré a pobar otra vez cuando subáis versiones nuevas del código.

Daniel
__________________
Retratero dominguero / Parásito fotográfico

Beste mundu bat posible eta beharrezkoa da - Otro mundo es posible y necesario.

Aunque parezca mentira, la cabeza sirve para algo más que para sujetar las orejas.
Responder Citando
  #13 (permalink)  
Antiguo 11-may-2008, 16:39
Habitual
 
Fecha de Ingreso: junio-2004
Ubicación: El Prat de Llobregat
Mensajes: 513
Joer, si es que soy un campeon.
Me he equivocado con el nombre del directorio.
Ya lo he corregido.

Cita:
Iniciado por Eduardo Cañadas Ver Mensaje
VERTEX

En el proyecto de dcraw la copia no funciona porque el nombre del directorio de destio es "pefectRaw", falta una r
__________________
Algún día sabré hacer fotos, mientras voy a seguir practicando y recbiendo vuestras críticas.

Mi galeria personal: www.ventayol.net
Mi galeria en photo.net: http://www.photo.net/photos/vertex
Responder Citando
  #14 (permalink)  
Antiguo 11-may-2008, 17:46
Avatar de dgmaga
Vivo en los foros
 
Fecha de Ingreso: abril-2005
Ubicación: Fránkfort del Meno
Mensajes: 1.818
Cita:
Iniciado por dgmaga Ver Mensaje
Sólo quería comentar que con las aclaraciones de Vértex y Eduardo he podido compilar todo.

Y si yo puedo compilarlo, quiere decir que cualquiera puede hacerlo...

De momento me da un error cuando intento revelar un raw pero volveré a pobar otra vez cuando subáis versiones nuevas del código.

Daniel
¡Funciona! He podido abrir una RAW y verlo en la pantalla!

Me da un error al intentar revelar un raw en concreto pero con otros funciona...

Daniel
__________________
Retratero dominguero / Parásito fotográfico

Beste mundu bat posible eta beharrezkoa da - Otro mundo es posible y necesario.

Aunque parezca mentira, la cabeza sirve para algo más que para sujetar las orejas.

Última edición por dgmaga; 11-may-2008 a las 17:58.
Responder Citando
  #15 (permalink)  
Antiguo 12-may-2008, 00:30
Habitual
 
Fecha de Ingreso: marzo-2008
Ubicación: Oviedo
Mensajes: 728
vertex: el directorio Properties yo tampoco sé muy bien qué es, pero en cualquier caso contiene código fuente (no generado por el compilador) y por tanto no debería de estar en el subdirectorio de la herramienta de desarrollo utilizada para compilar, sino en el raíz al mismo nivel que src
Responder Citando
  #16 (permalink)  
Antiguo 12-may-2008, 00:57
Avatar de dgmaga
Vivo en los foros
 
Fecha de Ingreso: abril-2005
Ubicación: Fránkfort del Meno
Mensajes: 1.818
Cita:
Iniciado por ariznaf Ver Mensaje
vertex: el directorio Properties yo tampoco sé muy bien qué es, pero en cualquier caso contiene código fuente (no generado por el compilador) y por tanto no debería de estar en el subdirectorio de la herramienta de desarrollo utilizada para compilar, sino en el raíz al mismo nivel que src
En mi ordenador, en la carpeta "properties" hay unos archivos generados automáticamente por VisualStudio Express 2008.

Los archivos se llaman "settings.designer.cs" y "settings.settings".

No creo que sirvan para compilar en otros entornos pero véte a saber.

Daniel
__________________
Retratero dominguero / Parásito fotográfico

Beste mundu bat posible eta beharrezkoa da - Otro mundo es posible y necesario.

Aunque parezca mentira, la cabeza sirve para algo más que para sujetar las orejas.
Responder Citando
  #17 (permalink)  
Antiguo 16-may-2008, 19:37
Avatar de _GUI_
Gurú Ojodigitalero
 
Fecha de Ingreso: marzo-2006
Ubicación: Madrid (a ratos Alicante)
Mensajes: 6.284
Enviar un mensaje por MSN a _GUI_
Cita:
Iniciado por ManuelLlorens Ver Mensaje
Abrir el proyecto test.dev y dar a compilar, no a ejecutar.
Pues va a ser que no compila :

Compilador: Default compiler
Building Makefile: "C:\dcraw\Makefile.win"
Ejecutando make...
make.exe -f "C:\dcraw\Makefile.win" all
gcc.exe -c test.c -o test.o -I"C:/Dev-Cpp/include" -w -fexpensive-optimizations -O1

gcc.exe: installation problem, cannot exec `cc1': No such file or directory

make.exe: *** [test.o] Error 1

Ejecución Terminada


No sé si sreá porque la ruta de gcc.exe no está referenciado en las variables de entorno, pero ni idea de como hacer para que lo esté (Vista). Y eso de cc1???


Me piro a Alicante, la próxima semana más.
__________________
"En ocasiones veo halos."

Canon EOS 350D | EOS 300 | 10-22 | 17-40 f4L | 24-70 f2.8L | 70-200 f4L | 300 f4L IS
http://www.guillermoluijk.com para suscribirte pulsa aquí

Última edición por _GUI_; 16-may-2008 a las 19:45.
Responder Citando
  #18 (permalink)  
Antiguo 16-may-2008, 20:30
Habitual
 
Fecha de Ingreso: marzo-2008
Ubicación: Oviedo
Mensajes: 728
_GUI_ Hay que leer más ... no se puede tener tanta prisa en marchar a Alicante...

Eso ya estaba reportado y arreglado.
En Vista no sé por qué el compilador no carga el precompilador porque no lo encuentra en el path tras la instalación. En XP sí.
Hay que añadir la carpeta del mingcw y librerías a las opciones de DEV-C++.

En el hilo de problemas de funcionamiento en Vista 64, Eduardo Cañadas había dado la solución.
Sigue las instrucciones de este enlace:
http://acatlangrafico.files.wordpres...8/03/vista.pdf

Última edición por ariznaf; 16-may-2008 a las 20:34.
Responder Citando
  #19 (permalink)  
Antiguo 16-may-2008, 20:53
Avatar de _GUI_
Gurú Ojodigitalero
 
Fecha de Ingreso: marzo-2006
Ubicación: Madrid (a ratos Alicante)
Mensajes: 6.284
Enviar un mensaje por MSN a _GUI_
Cita:
Iniciado por ariznaf Ver Mensaje
_GUI_ Hay que leer más ... no se puede tener tanta prisa en marchar a Alicante...
macho pero si es imposible seguiros, cuando uno cree que ha entendido un parche ya habéis sacado un parche del parche pero que solo va si se compila bajo entorno nosequé y a la vez que haces el pino puente.
he cambiado las rutas y me sigue dando un error, ahora por lo menos más adelante:

Compilador: Default compiler
Building Makefile: "C:\dcraw\Makefile.win"
Ejecutando make...
C:\Dev-Cpp\Bin\make.exe -f "C:\dcraw\Makefile.win" all
C:\Dev-Cpp\Bin\gcc.exe test.o -o "test.exe" -L"C:/Dev-Cpp/lib" libdcraw.a

gcc.exe: libdcraw.a: No such file or directory

C:\Dev-Cpp\Bin\make.exe: *** [test.exe] Error 1

Ejecución Terminada


En C:/Dev-Cpp/lib hay un archivo libddraw.a, pero igual no tiene nada que ver con el otro.

Ahora sí que me piro, hasta el domingo.
__________________
"En ocasiones veo halos."

Canon EOS 350D | EOS 300 | 10-22 | 17-40 f4L | 24-70 f2.8L | 70-200 f4L | 300 f4L IS
http://www.guillermoluijk.com para suscribirte pulsa aquí
Responder Citando
  #20 (permalink)  
Antiguo 16-may-2008, 22:02
Habitual
 
Fecha de Ingreso: marzo-2008
Ubicación: Oviedo
Mensajes: 728
NO GUI, si lo entiendo bien es el error es porque no encuentra la librería generada por el proyecto dcrawdll.
Insisto, hay que leer más...
En las explicaciones de Manuel explicaba que hay que ejecutar primero el proyecto de la librería y luego el de test.

Lo que creo que pasa es que no encuentra la librería porque no has compilado el proyecto que la genera primero.

Por cierto ¿tú no estabas en Alicante? Esto no es Alicante, eso está un poco más al sur de este foro
Responder Citando
Respuesta

Marcadores

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado
Ir al Foro