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
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.
No estoy usando ningun motor.
Buscando he encontrado varias formas de crear piezas pero no a partir del patron con todas las piezas.
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.
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
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