Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Libreria De Jpeg Portable

Iniciado por DraKKaR, 02 de Febrero de 2004, 09:59:39 PM

« anterior - próximo »

DraKKaR

 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?

DraKKaR

 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

ethernet

 openIL ? ya no se si se renombro a IJL XD pse mec... :(

seryu

 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.

Loover

 Prueba openil y te enamorarás.
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

DraKKaR

 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

Loover

 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...
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

DraKKaR

 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?

Loover

 Al revés, antes se llamaba Devil y lo cambiaron a OpenIl (creo)
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

ethernet

 En su web explican q lo cambiaron porque la gente de Opengl se lo pidio.

saludos

DraKKaR

 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?

DraKKaR

 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.

DraKKaR

 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.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.