Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   crear imagen (http://www.forosdelweb.com/f29/crear-imagen-602923/)

Pax-Man 04/07/2008 13:29

crear imagen
 
es posible crear una imagen atravez de codigo...

Me explico, para una aplicacion que estoy realizando, requiero que si ejecuta alguna accion en el tiempo, se cree una nueva imagen en una posicion especifica...

crear la imagen invisible y luego activarla no es viable, ya que depende del momento la imagen estara en una locacion especifica de la pantallla y este evento puede registrarse muchas veces y crear muchas imagenes..

pensaba e algo como

Código:

Dim insecto As New PictureBox
        insecto.Image = My.Resources.insecto
        insecto.Location = New System.Drawing.Point(10, 10)

Claro eso fue algo como inventando sin ningun sentido, pero nose si me logran captar la idea...

Pd. TRabajo en VS.net 2005 y framework 2

Peterpay 04/07/2008 13:32

Respuesta: crear imagen
 
Quieres una marca de agua aleatoria en cualquier parte de tu imagen anterior.???

Pax-Man 04/07/2008 20:50

Respuesta: crear imagen
 
no... no es una marca de agua... es agregar una imagen sobre otra... no es una marca de agua... crear una imagen... esta creacion sera invocada por algun evento en el sistema... no es posible crear una imagen y ponerla visible al ejecutarse, esta opcion no cumple con los requisitos ya que la ubicacion tambien dependera del instante en que se ejecute..

Peterpay 05/07/2008 05:46

Respuesta: crear imagen
 
pues si puedes ponerla solo obteniendo el objeto graphics de tu bitmap1.drawimage(bitmap2)

revisa el tema pero es muy simple gdi+

Pax-Man 06/07/2008 11:52

Respuesta: crear imagen
 
Bueno te cuento que usando tu solucion busque mas info y llegue a esta solucion....

Código:

    Dim myBitmap As System.Drawing.Bitmap
    Dim myGraphics As Graphics
    Dim mySource As Rectangle

    Sub dibujar()
        myBitmap = New System.Drawing.Bitmap(My.Resources.insecto)
        myGraphics = Graphics.FromHwnd(Me.Handle)
        mySource = New Rectangle(x:=dist_x, y:=dist_y, Width:=50, Height:=50)
        myGraphics.DrawImage(image:=myBitmap, rect:=mySource)
    End Sub

A la cual solo tengo que llamar cuando se ejecute el evento y pinta mi imagen en cualquier parte de la pantalla definida su poscion por dist_x y dist_y muy pero muy bien...

ahora el problema que me ocurre es que si tengo varios elementos en la pantalla, digamos n elementos... si la imagen se crea en un punto donde tenga atravezado algun elemento, digamos un textbox un label o algo... la imagen creada se situa detras de este elemento... alguna ida para solucionar esto?

Pax-Man 11/07/2008 22:16

Respuesta: crear imagen
 
alguna idea?

Peterpay 12/07/2008 06:57

Respuesta: crear imagen
 
Estas dibujando despues o antes del evento Inicializacion de tu formulario.

Pax-Man 13/07/2008 11:01

Respuesta: crear imagen
 
despues de crear el formulario se va creando dimamicamente al ejecutarse un timer

Peterpay 13/07/2008 14:42

Respuesta: crear imagen
 
prueba despues de pintar hacer un flush de objeto graphics

y a tu forma decirle this.Invalidate();

Pax-Man 13/07/2008 16:35

Respuesta: crear imagen
 
amigo podrias ser un poco mas especifico soy realmente bastate nuevo en vs.net alli arriba tienes mi codigo si no es mucha molestia podrias decirme como deberia quedar

Peterpay 13/07/2008 17:10

Respuesta: crear imagen
 
Agrega

myGraphics.Flush();

si esto no funciona haz despues de dibujar()

Me.Invalidate()

Pax-Man 15/07/2008 11:53

Respuesta: crear imagen
 
Bueno para usuarios futuros si alguna vez lo necesitan aqui esta el codigo de como crear picturebox a voluntad.. todo viene dado por una matriz de picturebox declarada al comienzo de todo y bueno codigo habla por si solo

Código:

    Dim imagen(50, 50) As PictureBox
    Dim fila, columna As Integer
    Private Sub IniciaTablero()
        imagen(fila, columna) = New PictureBox
        imagen(fila, columna).Name = "Picture " & CStr(fila) & CStr(columna)
        imagen(fila, columna).Size = New Point(20, 20)
        imagen(fila, columna).Location = New Point(20 * columna, 20 * fila)
        Me.Controls.Add(imagen(fila, columna))
    End Sub



La zona horaria es GMT -6. Ahora son las 04:24.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.