Foro de elhacker.net

Programación => 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
  1. Option Explicit
  2.  
  3. Const ScrCopy = &HCC0020
  4.  
  5. Private Declare Function StretchBlt Lib "gdi32" ( _
  6.    ByVal hdc As Long, _
  7.    ByVal X As Long, _
  8.    ByVal Y As Long, _
  9.    ByVal nWidth As Long, _
  10.    ByVal nHeight As Long, _
  11.    ByVal hSrcDC As Long, _
  12.    ByVal xSrc As Long, _
  13.    ByVal ySrc As Long, _
  14.    ByVal nSrcWidth As Long, _
  15.    ByVal nSrcHeight As Long, _
  16.    ByVal dwRop As Long) As Long
  17.  
  18. Private Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As Long
  19.  
  20.  
  21. Private Sub Command1_Click()
  22.    'Ponemos en el Picture1 un trozo del fondo de escritorio:
  23.    PaintDesktop Picture1.hdc
  24.    'Espejo vertical:
  25.    StretchBlt Picture2.hdc, 100, 0, -100, 100, Picture1.hdc, 0, 0, 100, 100, ScrCopy
  26.    'Espejo horizontal:
  27.    StretchBlt Picture3.hdc, 0, 100, 100, -100, Picture1.hdc, 0, 0, 100, 100, ScrCopy
  28. End Sub
  29.  
  30. Private Sub Form_Load()
  31.    Me.Height = 4000
  32.    Me.Width = 4000
  33.    Me.AutoRedraw = True
  34.    Me.ScaleMode = vbPixels
  35.  
  36.    Picture1.Top = 20
  37.    Picture1.Left = 20
  38.    Picture1.Width = 100
  39.    Picture1.Height = 100
  40.    Picture1.BorderStyle = 0
  41.  
  42.    Picture2.Top = 20
  43.    Picture2.Left = 120
  44.    Picture2.Width = 100
  45.    Picture2.Height = 100
  46.    Picture2.BorderStyle = 0
  47.  
  48.    Picture3.Top = 120
  49.    Picture3.Left = 20
  50.    Picture3.Width = 100
  51.    Picture3.Height = 100
  52.    Picture3.BorderStyle = 0
  53.  
  54.    Command1.Top = 120
  55.    Command1.Left = 120
  56.    Command1.Width = 100
  57.    Command1.Height = 100
  58.  
  59. End Sub
  60.  

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