Anuncios Google

Duda_Dev ¿?

Alguien save si ya hay funciones para pegar una imagen encima de otra y para pintar en una imagen por ejemplo

aplicar un draw.fillrect() en una imagen.saludos


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de zerozelta

se me ocurrio una tecnica

se me ocurrio una tecnica poco ortodoxa para blitear CUALQUIER COSA que puedas dibujar en pantalla, en una imagen

-- Argumentos: graphics es una funcion que blitea los graficos en la pantalla
 
function drawImage(graphics)
     graphics() -- Iniciamos los graficos en la pantalla
 
     local img = screen.buffertoimage( )  -- Esto coge lo que hay en el buffer (pantalla) y nos devuelve todo en una imagen ( funcion muy util pero muy menospreciada :/ )
 
     draw.fillrect(0,0,480,272,color.new(0,0,0)) -- Limpiamos el buffer para retornarlo a su estado original
 
     return img -- Devolvemos nuestra imagen
end

Lo malo de esta funcion es que solo puede funcionar antes de escribir datos en el buffer, ya que al limpiarlo se van a perder los datos anteriores, pero con algo de imaginacion podemos evitar esto

por ejemplo el codigo siguente:

-- Argumentos: graphics es una funcion que blitea los graficos en la pantalla
 
function drawImage(graphics)
     local screen = screen.buffertoimage( ) -- Obtenemos lo que ya habia en el buffer
 
     graphics() -- Iniciamos los graficos en la pantalla
 
     local img = screen.buffertoimage( )  -- Esto coge lo que hay en el buffer (pantalla) y nos devuelve todo en una imagen ( funcion muy util pero muy menospreciada :/ )
 
     draw.fillrect(0,0,480,272,color.new(0,0,0)) -- Limpiamos el buffer para retornarlo a su estado original (En esta funcion no es VITAL poner esta linea, pero por si acaso la dejo hai XD)
 
     screen:blit(0,0)   -- Pintamos el screen en el buffer
 
     return img -- Devolvemos nuestra imagen
end

Y listo, una funcion completa para blitear cualquier cosa en una imagen

Aclaro qeu este metodo se me acaba de ocurrir, no lo he porbado (pero lo haré XP) pero en teoria debe funcionar ^^


No necesitas funciones

No necesitas funciones especiales, lo que dibujes o blitees primero en pantalla quedará al fondo, lo demás se irá pintando encima conforme lo vayas agregando.

En otras palabras, para aplicar un draw.fillrect encima de una imagen, simple y llanamente bliteas tu imagen y encima pones el draw.fillrect.

Imagen de Jepte

 lo que pasa es que nesesito

 lo que pasa es que nesesito que se quede grabada la imagen, es para poder hacer una nueva version del go!paint sin eso creo que no se va a poder .saludos

A vaya... pues eso hubieras

A vaya... pues eso hubieras dicho xD

Directamente no se puede, tendrás que hacerlo a mano. Puedes, por ejemplo, blitear la imagen y los cambios en pantalla, y cuando quieras guardar, tomas una captura y la guardas como si fuera tu imagen original.
El guardado tendrá que ser manual (más tardado) porque la función image.save de LuaDEV no funciona correctamente, revisa este hilo.

Imagen de Chimecho

No no, espera, que sí hay forma!

Existen las funciones:

imagen_destino:blit(destino_x, destino_y, imagen_origen);
imagen_destino:blit(destino_x, destino_y, imagen_origen, origen_x, origen_y, origen_w, origen_h);

Eso sirve si quieres reemplazar los píxeles de una imagen (destino) con los píxeles de otra (origen), ya que LuaDEV por el momento, reemplaza directamente, no es lo mismo que un blit en pantalla.

Por ejemplo, suponiendo que tienes un cuadro negro en destino, y un cuadro blanco semistransparente en la otra, al hacer el blit de la de origen sobre la de destino, quedará blanco y no medio gris.

Sólo quería que sepan que existen esas funciones, sólo que no están pulidas al 100%, así que la solución por el momento sería la que dio RG, bliteando en pantalla y capturando lo que se quiera guardar.

 

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Gracias Chime!!!!!!!

Por fin encontré las malditas funciones! Gracias por pasarnoslas :D

EDITO: por más que lo estoy probando, no me funciona...

Imagen de Jepte

la primera si funciona la

la primera si funciona la segunda no se no la e probado.saludos

OK...

A mi me ha funcionado por fin, pero el problema es que no respeta el alfa (en una imagen con fondo transparente), lo convierte en negro =/


 

 

Imagen de Chimecho

Pero si lo dije xD

Aclaré ese punto en mi comentario.

xD

Es verdad.

Imagen de Jepte

ok gracias intente algo

ok gracias intente algo paresido pero se me colgaba la psp.saludos

Imagen de Jepte

que buena idea la funcion que

que buena idea la funcion que isiste me va a servir y creo que es la unica forma, ya que la funcion pixel es la unica que pinta sobre en imagen, muchas gracias por todo.vere si puedo aplicar esto con los textos.saludos

Imagen de sting18

Grabada solo la imagen? creo

Grabada solo la imagen? creo que Robert fue bastante claro para lo que quieres hacer o explicate mas.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.