Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Recortar una imagen para crear piezas de puzle en android

Iniciado por bnl, 22 de Junio de 2016, 12:25:46 PM

« anterior - próximo »

bnl

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:



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



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
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

astrologo

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.

GAME DESIGNER
Twitter: @astrologo666, @Kikkulia

bnl

No estoy usando ningun motor.
Buscando he encontrado varias formas de crear piezas pero no a partir del patron con todas las piezas.
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

Ray

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.

Gallo

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

bnl

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
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.






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.