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 pantallafunction drawImage(graphics)
graphics()-- Iniciamos los graficos en la pantallalocal 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 originalreturn img -- Devolvemos nuestra imagenend
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 pantallafunction drawImage(graphics)local screen = screen.buffertoimage()-- Obtenemos lo que ya habia en el buffer
graphics()-- Iniciamos los graficos en la pantallalocal 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 bufferreturn img -- Devolvemos nuestra imagenend
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 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.
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
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.
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.
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
se me ocurrio una tecnica
se me ocurrio una tecnica poco ortodoxa para blitear CUALQUIER COSA que puedas dibujar en pantalla, en una imagen
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:
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.
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.
No no, espera, que sí hay forma!
Existen las funciones:
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...
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 =/
Pero si lo dije xD
Aclaré ese punto en mi comentario.
xD
Es verdad.
ok gracias intente algo
ok gracias intente algo paresido pero se me colgaba la psp.saludos
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
Grabada solo la imagen? creo
Grabada solo la imagen? creo que Robert fue bastante claro para lo que quieres hacer o explicate mas.