Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: CICOLO_111234 en 27 Enero 2009, 21:04 PM

Título: como simular el efecto de espejo en vb
Publicado por: CICOLO_111234 en 27 Enero 2009, 21:04 PM
hola!
kisiera saber como simular el efecto de un espejo en un image de visual basic...


salu2
Título: Re: como simular el efecto de espejo en vb
Publicado por: LeandroA en 27 Enero 2009, 23:49 PM
hola dos que se me ocurren la primera la mas facil (creo) es usando lineas con AlphaBlend  e ir regulando la intensidad y la otra mas profesional dira es crear dos array de bits uno de la imagen y otro del destino y luego ir fucionado los bits en intesidad proporcinal al tamaño de la imagen.

eso si es lo que yo entiendo por efecto espejo, sino pone una imagen de lo que vos decis.

Saludos
Título: Re: como simular el efecto de espejo en vb
Publicado por: PeterPunk77 en 28 Enero 2009, 03:46 AM
Buenas CICOLO_111234, si lo que quieres es invertir la imagen vertical u horizontalmente lo más fácil es usar la API StretchBlt.
Aquí un pequeño ejemplo. Pon tres picture boxes y un botón en un formulario y copia este código:
Código (vb) [Seleccionar]
Option Explicit

Const ScrCopy = &HCC0020

Private Declare Function StretchBlt Lib "gdi32" ( _
    ByVal hdc As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal xSrc As Long, _
    ByVal ySrc As Long, _
    ByVal nSrcWidth As Long, _
    ByVal nSrcHeight As Long, _
    ByVal dwRop As Long) As Long
   
Private Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As Long


Private Sub Command1_Click()
    'Ponemos en el Picture1 un trozo del fondo de escritorio:
    PaintDesktop Picture1.hdc
    'Espejo vertical:
    StretchBlt Picture2.hdc, 100, 0, -100, 100, Picture1.hdc, 0, 0, 100, 100, ScrCopy
    'Espejo horizontal:
    StretchBlt Picture3.hdc, 0, 100, 100, -100, Picture1.hdc, 0, 0, 100, 100, ScrCopy
End Sub

Private Sub Form_Load()
    Me.Height = 4000
    Me.Width = 4000
    Me.AutoRedraw = True
    Me.ScaleMode = vbPixels
   
    Picture1.Top = 20
    Picture1.Left = 20
    Picture1.Width = 100
    Picture1.Height = 100
    Picture1.BorderStyle = 0
   
    Picture2.Top = 20
    Picture2.Left = 120
    Picture2.Width = 100
    Picture2.Height = 100
    Picture2.BorderStyle = 0
   
    Picture3.Top = 120
    Picture3.Left = 20
    Picture3.Width = 100
    Picture3.Height = 100
    Picture3.BorderStyle = 0

    Command1.Top = 120
    Command1.Left = 120
    Command1.Width = 100
    Command1.Height = 100

End Sub


Saludos.
Título: Re: como simular el efecto de espejo en vb
Publicado por: BlackZeroX en 29 Enero 2009, 09:06 AM
tambien puede usar la API PlgBlt para dicha acción xP

Esto me ha dado una idea xD...¡!

Saludos