NECESITO CONVERTIR JPG EN PNG DESDE UN PROGRAMA

Started by Coptroner, May 26, 2014, 12:04:31 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Coptroner

Hola a todos  :)

Se que éste rerá un tema ya debatido en algun sitio de éste foro, pero no encuentro lo que necesito para hacer una simple cosita:

-CARGAR UNA IMAGEN .JPG PARA CONVERTIRLA EN UN MAPA Y SALVARLA COMO .PNG

Por favor si alguien sabe qué libreria necesito y como se implementa el código para realizar ésta simple acción le estaré eternamente agradecido  :D

Good codding my friends!

panreyes


ImageMagick. Convert :)


Desde BennuGD puedes utilizarlo con EXEC.


De hecho, aquí te dejo la mandanga que utilizo yo para GENERAR GIFS desde el propio juego :D



Process guarda_3segs();
Private
string chachi;
string argumentos[20];
string nombre;
int fskip=3;
Begin
for(i=1;i<90;i+=fskip)
j=get_screen();
if(i<10)
nombre="anim0"+i+".png";
else
nombre="anim"+i+".png";
end
save_png(0,j,"out.png");


//360p:
argumentos[0]="-size";
argumentos[1]="1280x720";
argumentos[2]="out.png";
argumentos[3]="-resize";
argumentos[4]="640x360";
argumentos[5]=nombre;
exec(_P_WAIT,"..\utils\imagemagick\convert.exe",6,&argumentos);
unload_map(0,j);


frame(fskip*100);
end

say("Generando GIF");
argumentos[0]="-delay";
argumentos[1]=fskip*3;
argumentos[2]="-loop";
argumentos[3]="0";
argumentos[4]="anim*.png";
argumentos[5]="-dispose";
argumentos[6]="Background";
argumentos[7]="-layers";
argumentos[8]="Optimize";
argumentos[9]="animation.gif";
exec(_P_WAIT,"..\utils\imagemagick\convert.exe",10,&argumentos);
End

Coptroner

#2
Gracias majo!

Luego en casa lo pruebo.
Yo lo que necesito es convertir las imagenes de las covers que se bajen los usuarios de internet de .jpg a .png para poder crear las caratulas de los juegos.

No había una libreria en Bennu para eso? Recuerdo algo de "load_image("ruta\archivo.jpg") o algo así...

Coptroner

No se que me pasa, si me estoy haciendo viejo, o se me ha metido una china en el zapato que no me deja concentrarme  ;D
Hay algo en la rutina del programa que ejecuta el convert.exe que no doy con ello.

Lo he probado primero creando un archivo .bat con las instrucciones que quiero ejecutar:

convert *.jpg -resize 800x600 nuevo_mapa.png

Ejecutando el archivo .bat me hace la conversión sin problemas, pero cuando lo hago desde el programa no hace ni pum.

He comprobado las rutas del programa para asegurarme de que encuentran el convert.exe y he comprobado que la variable de argumentos coge los parametros de forma ordenada y de que encuentra los archivos a convertir.

Pero el resultado es cero patatero. He probado incluso a hacer un .prg sólo con la rutina del conversor y nada de nada...

¿que puede ser, PiXeL?

panreyes

Ni idea, sorry :\


Lo único que se me ocurre es que te esté fastidiando el *.jpg. Me parece que para convertir muchos ficheros hay que utilizar una herramienta aparte.

emov2k4

Yo utilizo este programa
http://www.faststone.org/FSResizerDetail.htm

convierte de varios archivos a la vez, puedes renombrar, cambiar tamaño etc.. etc...

panreyes

Pd: Igual la solución la tienes en hacer un bucle desde BennuGD!

Coptroner

Quote from: PiXeL on June 10, 2014, 06:55:47 PM
Ni idea, sorry :\


Lo único que se me ocurre es que te esté fastidiando el *.jpg. Me parece que para convertir muchos ficheros hay que utilizar una herramienta aparte.

Lo que si que no funciona es el "*.png" para el nombre del archivo destino, pero para el origen si va.
Aun así he probado tambien a hacerlo archivo a archivo con el mismo resultado negativo, sin embargo haciendolo desde un comando en un .bat me funciona a la perfeccion, incluyendo el "*.jpg".

El codigo en Bennu es un bucle que recoge en una variable data[n] el nombre de la imagen original en .jpg, los parametros de "-resize" y "res.alto x res.ancho", el nombre de la .png final y se los pasa al comando exec con la ruta del programa convert.exe, el nº de argumentos y la variable data con los parametros, (mas o menos como el que me pusiste en el ejemplo).

Será alguna pollada que se me escapa, ya la encontraré... ya... jajaja
Gracias de todos modos PiXeL  ;)

La idea es ésta:
-Al Launcher le he añadido un "Cover creator" con el que poder crear nuestras propias portadas para los juegos de la biblioteca con imagenes descargadas de internet.
-El 90% de las portadas de juegos vienen en .jpg por lo que hay que convertirlas a .png para que el Launcher pueda usarlas dentro del programa para crear nuestra caratula.
-El Launcher debe, en tiempo de ejecución, coger todas las imagenes que el usuario ha descargado e incluido en la carpeta de imagenes en formato .jpg y convertirlas a .png para ser usadas por el programa.

Por eso el convert.exe viene de perlas para tal fin ya que se ejecuta a través de una serie de parametros que le podemos pasar con el comando exec y asi hacerlo de forma automatizada para el usuario.