domingo, 15 de junio de 2008

ImageScience y FreeImage en x86_64

Hace un tiempo tuve que hacer un pequeño tratamiento de imagenes, consistente en reescalar las imagenes subidas por los usuarios al servidor. Despues de leer sobre las alternativas disponibles, que son básicamente las que aparecen aquí (RMagick, Mini-magic y ImageScience), me decidí por ImageScience.

Un pre-requisito es instalar FreeImage, pero al instalar la versión 3.10 en Slicehost (Dual-Core AMD Opteron de 64 bits)

uname -a
Linux pre.beruby.com 2.6.18-xen #1 SMP Tue Feb 12 06:40:50 UTC 2008 x86_64 GNU/Linux

da un error de compilación

Source/FreeImage/PluginBMP.cpp: In function 'BOOL LoadPixelDataRLE4(FreeImageIO*, void*, int, int, FIBITMAP*)':
Source/FreeImage/PluginBMP.cpp:227: error: no matching function for call to 'MIN(int&, long int)'
Source/FreeImage/PluginBMP.cpp:282: error: no matching function for call to 'MIN(int&, long int)'
make[1]: *** [Source/FreeImage/PluginBMP.o] Error 1


Como siempre, googleando un poco encontré un parche con la solución que consiste simplemente en cambiar la definición de un par de variables desde DWORD y int a long.

Parece que en la última versión de CVS de FreeImage ya esta solucionado el error, pero bueno, esta solución tambien es valida :-)

1 comentario: