https://foro.gambas-es.org/viewtopic.php?f=5&t=2338&p=13363#p13363
-----------------------------------
Shell
Lunes, 07 May 2012, 09:07

Re: Juego Simple De Puzzle
-----------------------------------
Julio:

Genial.Vas bien. Te cuento.
Mi idea era trocear una imagen.(Era otro programa)
Se que usas convert.Hace tiempo tiempo hablaste del tema.

Esto esta hecho con Gambas2.No use Gambas3, pero no creo que sea difícil de convertirlo.
Ademas Gambas3 tiene que ofrecer una gran cantidad de posibilidades del tratamiento de imágenes, que carece gambas2.

Use el componente gb.image

En este caso era solo 4 trozos de la imagen.
 [img]http://foro.gambas-es.org/files/images/768/imagenes.png[/img]

El formulario principal:

[code linenumbers=false syntax=gambas]
PRIVATE imagenes AS NEW Object[]
PRIVATE imagen_aux AS NEW Image
PRIVATE imagen_copia AS NEW Image
PRIVATE miformulario AS FormImagen


PUBLIC SUB Form_Open()
  
  imagen_aux = imagen_aux.Load("~/Imágenes/Gambas3.png")
  
  miformulario = NEW FormImagen(imagen_aux.Width, imagen_aux.Height, imagen_aux)
  miformulario.Show
  
  imagen_copia = imagen_aux.COPY(0, 0, imagen_aux.Width / 2, imagen_aux.Height / 2)
  comun
  
  imagen_copia = imagen_aux.COPY(imagen_aux.Width / 2, 0, imagen_aux.Width / 2, imagen_aux.Height / 2)
  comun
  
  imagen_copia = imagen_aux.COPY(0, imagen_aux.Height / 2, imagen_aux.Width / 2, imagen_aux.Height / 2)
  comun
  
  imagen_copia = imagen_aux.COPY(imagen_aux.Width / 2, imagen_aux.Height / 2, imagen_aux.Width / 2, imagen_aux.Height / 2)
  comun

END 

PUBLIC SUB comun()
  imagenes.Add(imagen_copia)
  miformulario = NEW FormImagen(imagen_copia.Width, imagen_copia.Height, imagen_copia)
  miformulario.Show
END 

[/code]

El del formulario que muestra la imagen.(Anda que no se me han ocurrido diabluras con esto para nuestro usuario)  :twisted: 
Valeee..para el jefe.

[code linenumbers=false syntax=gambas]
PRIVATE miimagen AS Image

PUBLIC SUB _new(ancho AS Integer, alto AS Integer, imagen AS Image)
  Dibujo.Width = ancho
  Dibujo.Height = alto   
  ME.Width = ancho
  ME.Height = alto  
  miimagen = imagen 
END


PUBLIC SUB Form_Open()

ME.Caption = "Parte"
Draw.Begin(Dibujo)
  Draw.Image(miimagen, 0, 0, miimagen.Width, miimagen.Height)
Draw.End
  
END
[/code]

Entonces, lo suyo que no tiene que ser difícil es la creación del código para que trocee las imágenes y las vaya almacenando en una matriz de imágenes
y se puede usar directamente las funciones del propio gambas. :-)

Yaaa, ya se que fue para salir del paso y rápido a la vez. ;-)

Ah, la diablura consistía...psss..psss..imagina ese formulario de imágenes con coordenadas al azar, con unas imágenes determinadas por todo el escritorio... :twisted: 
Si a eso le añades un bucle.. :cool: 

Lo que me fastidia, es que el formulario hijo debería ser independiente del principal, así la broma seria mejor.

Saludos.


