Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: bnl en 22 de Junio de 2016, 12:25:46 PM

Título: Recortar una imagen para crear piezas de puzle en android
Publicado por: bnl en 22 de Junio de 2016, 12:25:46 PM
Buenas

Necesito recortar una imagen programaticamente para crear piezas de puzle.
Para recortar las piezas tengo un patrón con colores con las formas de las piezas:

(http://i.stack.imgur.com/zDAji.png)

Necesito crear una imagen para cada pieza.

A partir de una imagen con el patron de una sola pieza (de 1 color la zona de la pieza y en transparente el resto de la imagen) he consegido recortar la imagen con ese patrón para obtener una pieza

(http://i.stack.imgur.com/Xnv4p.png)

usando el siguiente codigo

Bitmap bitmap = Bitmap.createBitmap(mascara2.getWidth(), mascara2.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
c.drawBitmap(cuadro, 0, 0, null);
Paint maskPaint = new Paint();
maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
c.drawBitmap(mascara2, 0, 0, maskPaint);
canvas.drawBitmap(bitmap, 0, 0, null)


Pero eso me obligaria a usar una imagen de patron para cada pieza en vez de una sola imagen con el patron de todas las piezas

¿Sabeis como se puede recortar en una imagen las zonas que esten en otra imagen de un color determinado?

Gracias
Título: Re:Recortar una imagen para crear piezas de puzle en android
Publicado por: astrologo en 22 de Junio de 2016, 09:36:29 PM
Qué motor estás usando? UNity?

Nunca me había planteado hacer algo así. Pero no debería de ser difícil, ni tampoco difícil encontrar ejemplos hechos. En Unity casi puedes encontrar ejemplos de todo.

Título: Re:Recortar una imagen para crear piezas de puzle en android
Publicado por: bnl en 23 de Junio de 2016, 10:51:43 AM
No estoy usando ningun motor.
Buscando he encontrado varias formas de crear piezas pero no a partir del patron con todas las piezas.
Título: Re:Recortar una imagen para crear piezas de puzle en android
Publicado por: Ray en 27 de Junio de 2016, 10:08:47 PM
Creo que lo ideal sería que usases Opengl, y que las piezas fueran modelos 2D. Toda la imagen del puzzle sería una textura y bastaría con asociar a cada pieza las coordenadas de la textura, que se corresponderían con su posición en el mosaico. Aunque no tienen porqué ser necesariamente polígonos, pueden ser rectángulos y usar aparte de la textura de la imagen otra textura de máscara alpha para cada tipo de pieza.

Y bueno, aparte, con Opengl todo sería mucho más rápido y versátil, permitiendo zoom, rotaciones y desplazamientos suaves, filtros, efectos, etc. Hasta podrían tener cierto volumen y perspectiva inclinada en 3D sin demasiado esfuerzo.
Título: Re:Recortar una imagen para crear piezas de puzle en android
Publicado por: Gallo en 28 de Junio de 2016, 03:26:28 PM
Cita de: Ray en 27 de Junio de 2016, 10:08:47 PM
Creo que lo ideal sería que usases Opengl, y que las piezas fueran modelos 2D. Toda la imagen del puzzle sería una textura y bastaría con asociar a cada pieza las coordenadas de la textura, que se corresponderían con su posición en el mosaico. Aunque no tienen porqué ser necesariamente polígonos, pueden ser rectángulos y usar aparte de la textura de la imagen otra textura de máscara alpha para cada tipo de pieza.

Y bueno, aparte, con Opengl todo sería mucho más rápido y versátil, permitiendo zoom, rotaciones y desplazamientos suaves, filtros, efectos, etc. Hasta podrían tener cierto volumen y perspectiva inclinada en 3D sin demasiado esfuerzo.

Si, a mi me gusta esta solución, sobretodo la de la mascara. De hecho puedes utilizar esa misma imágen que has puesto roja/verde/azul y masquear según un color pasado como uniform
Título: Re:Recortar una imagen para crear piezas de puzle en android
Publicado por: bnl en 28 de Junio de 2016, 03:33:22 PM
Gracias!!!
Estoy trabajando directamente con canvas sin opengl. En opengl estoy muy verde y prefiero seguir usando canvas para no invertir tiempo en aprender a utilizarlo