En mi motor uso la IJL para cargar imágenes JPEG, pero tengo entendido que solo vale para windows. Como quiero que mi motor sea completamente portable, he estado mirando otras librerias. Parece ser que la que más se usa es la IJG, pero no he encontrado ni tutoriales ni nada para aprender a usarla.
¿Que me aconsejais?
Venga hombre, enrrollaos! no me creo que nadie de vosotros haya usado nunca, o sepa de alguna libreria de jpeg que no sea la IJL ;P
openIL ? ya no se si se renombro a IJL XD pse mec... :(
http://www.ijg.org/qe sepa sirve para todo, al menos la libjpeg es la qe usa todo dios ahora.
En cuanto a un tutorial.. pues buscate algun programa qe la use y miras como lo ha implementado.
A mi me parecia sencillo, si te lo miras con calma no creo qe tengas problemas.
Prueba openil y te enamorarás.
Gracias a todos por responder.
La IJG es la que tenia pensada pero no he suado todavia por falta de referencias sobre como aprender a usarla, de todas formas me la miraré mas a fondo a ver. Seryu si te aburres y me pasas algun código que la use, pues mejor que mejor.
No me acordaba de la OpenIL! Ya que mi motor usa OpenAL y me gusta tanto OpenGL, me la miraré a ver para darle una oportunidad. si se parece en su uso seguro que me gusta XD
Yo tengo un manager muy gracioso que gestiona OpenIl. De forma que puedas cargar imágenes, meterle filtros tipo photoshop (blur, detectar bordes, gamma, recortes, etc) y grabarlas a cualquier formato de los que acepta openil.
Pero si solo quieres controlar jpeg no creo q te haga falta tanto tocho...
No! en realidad OpenIL es exactamente lo que quiero.. no tengo porque limitarme al formato JPEG. Usando la OpenIL puedo cargar automaticamente cualquier tipo de formatos que soporte, y es sencillisimo de usar y bastante agradale sobre todo para un fan de OpenGL como yo.
¿Por cierto... le han cambiado el nombre? ¿Como coño le han puesto Devil?
Al revés, antes se llamaba Devil y lo cambiaron a OpenIl (creo)
En su web explican q lo cambiaron porque la gente de Opengl se lo pidio.
saludos
Tenias razón Loover, probé la OpenIL y me enamoré XD Es increible lo sencilla de usar y lo potente que es.
Solo tengo un pekeño problemilla.. los mipmaps...
utilizo la función iluBuildMipmaps(), que se ejecuta correctamente. Entonces quiero acceder a los texeles de cada nivel de esos mipmaps (tener un puntero que apunte a ellos).
para ello con un bucle repito lo siguiente para cada nivel:
ilActiveMipmap(i+1);
mipmaps[0]=ilGetData();
En principio deberia funcionar, pero parece que con ilGetData no se puede acceder a los pixeles del mipmap.
¿Sabes de alguna manera?
Bueno, me contesto a mi mismo..
Es una cosa muy extraña.. al parecer dentro del bucle, justo antes de ilActiveMipmap hay que rebindear la imagen original con ilBindImage, de esa manera funciona.
Menos mal que he encontrado este código que también han tenido que "solucinarlo así", como dicen ellos... ¿será un posible bug de la OpenIL?
Hasta luego.
Habiendo hecho funcionar mi engine con la OpenIL me encuentro con un problemilla (relacionado con OpenIL) portándolo a Linux.
Supuestamente el código de OpenIL es portable, pero en linux la función ilLoadImage me devuelve IL_FALSE, cuando en windows me devuelve IL_TRUE.
Intentando reducir el problema me he dado cuenta que en el siguiente programa, la función ilLoadImage devuelve IL_FALSE, al intentar cargar una imagen (que está en ese dir y con lso permisos necesarios).
#include <IL/il.h>
int main(void)
{
int i,ierror;
ilInit();
iluInit();
ilGenImages(1,&i);
ilBindImage(i);
if (ilLoadImage("crackmud.png")==IL_FALSE)
{
printf("%s",iluErrorString(ilGetError()));
exit(1);
}
ilSaveImage("1.jpg");
ilDeleteImages(1,&i);
return 0;
}
En teoria debería haberla cargado y devuelto IL_TRUE. Lo más curioso es que el mensaje de error devuelto ha sido "no error".
¿Alguno sabe que ha ocurrido? ¿Alguno puede pasarme un código que funcione en Linux y que use OpenIL?
Gracias.