elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  Fondo Blur GDI+ [Aporte]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Fondo Blur GDI+ [Aporte]  (Leído 384 veces)
Keyen Night


Desconectado Desconectado

Mensajes: 495


Nothing


Ver Perfil
Fondo Blur GDI+ [Aporte]
« en: 18 Noviembre 2012, 03:10 »

El Visual Studio es excelente para el diseño a falta de potencia, entonces si tenemos esta herramienta pues explotemosla :xD

Aquí le dejo un modulo que quizá a alguien le pueda servir, crea un Form cuyo BackGroundImage es un ScreenShot con el efecto Blur se muestra con control de opacidad de una manera muy visual, esto sirve si queremos llamar la atención del usuario a nuestra aplicación más o menos lo que hace el UAC cuando nos da una advertencia pero con Blur, es un código sencillo que puede resaltar el detalle del diseño en cualquier aplicación...

El BlurForce mientras más alto más desenfoca pero tarda más en aplicar el efecto, se recomiendan valores del 1 al 5, por defecto es 2, la función tiene por defecto 1.

Speed define la velocidad para pasar la opacidad del Form de 0 a 1 y viceversa, por defecto es 0.025/1 ms.

Coloque la función Blur a parte para que se pudiese detallar su funcionamiento.

El Sub BlurBitmap proviene de: http://vbdotnetpower.blogspot.com/2011/06/image-effect-bluring.html

Código
  1. Module BlurBackground
  2.  
  3.    Private WithEvents Background As New Form With {.Bounds = SystemInformation.VirtualScreen, _
  4.                                                    .StartPosition = FormStartPosition.Manual, _
  5.                                                    .TopMost = True, _
  6.                                                    .Opacity = 0, _
  7.                                                    .BackgroundImageLayout = ImageLayout.None, _
  8.                                                    .FormBorderStyle = FormBorderStyle.None, _
  9.                                                    .BackgroundImage = Nothing, _
  10.                                                    .ShowIcon = False, _
  11.                                                    .ShowInTaskbar = False}
  12.  
  13.    Private WithEvents Timer As New Timer With {.Enabled = False, .Interval = 1}
  14.  
  15.    Public Speed As Double
  16.  
  17.    Private Sub BlurBitmap(ByRef Image As Bitmap, Optional ByVal BlurForce As Integer = 1)
  18.        Dim _
  19.        Graph As Graphics = Graphics.FromImage(Image), _
  20.        ImgAtt As New ImageAttributes, _
  21.        Matrix As New ColorMatrix
  22.        Matrix.Matrix33 = 0.5F
  23.        ImgAtt.SetColorMatrix(Matrix)
  24.        For x As Integer = -BlurForce To BlurForce
  25.            For y As Integer = -BlurForce To BlurForce
  26.                Graph.DrawImage(Image, New Rectangle(x, y, _
  27.                                                     Image.Width, _
  28.                                                     Image.Height), _
  29.                                                     0, 0, Image.Width, _
  30.                                                     Image.Height, _
  31.                                                     GraphicsUnit.Pixel, ImgAtt)
  32.            Next
  33.        Next
  34.        ImgAtt.Dispose()
  35.        Graph.Dispose()
  36.    End Sub
  37.  
  38.    Public Sub ShowBackground()
  39.  
  40.        If Background.BackgroundImage IsNot Nothing Then
  41.            Background.BackgroundImage.Dispose()
  42.        End If
  43.  
  44.        Dim BlurBack As New Bitmap(SystemInformation.VirtualScreen.Width, _
  45.                                   SystemInformation.VirtualScreen.Height)
  46.  
  47.        Dim BlurGraph As Graphics = Graphics.FromImage(BlurBack)
  48.  
  49.        BlurGraph.CopyFromScreen(0, 0, 0, 0, SystemInformation.VirtualScreen.Size)
  50.  
  51.        BlurBitmap(BlurBack, 2)
  52.  
  53.        BlurGraph.Dispose()
  54.  
  55.        Background.BackgroundImage = BlurBack
  56.        If Not Timer.Enabled And Not Background.Visible Then
  57.            Background.Show()
  58.            Speed = 0.025
  59.            Timer.Start()
  60.        End If
  61.    End Sub
  62.  
  63.    Public Sub HideBackground()
  64.        If Not Timer.Enabled And Background.Visible Then
  65.            Speed = -0.025
  66.            Timer.Start()
  67.        End If
  68.    End Sub
  69.  
  70.    Private Sub Timer_Tick(ByVal sender As Timer, ByVal e As System.EventArgs) Handles Timer.Tick
  71.  
  72.        Select Case Background.Opacity + Speed
  73.            Case Is > 1
  74.                Timer.Stop()
  75.                Exit Sub
  76.            Case Is < 0
  77.                Timer.Stop()
  78.                Background.Hide()
  79.        End Select
  80.  
  81.        Background.Opacity += Speed
  82.  
  83.    End Sub
  84.  
  85.    'Solo por seguridad para cerrar el Form con un click'
  86.    Private Sub Background_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Background.Click
  87.        HideBackground()
  88.    End Sub
  89.  
  90. End Module


« Última modificación: 19 Noviembre 2012, 04:55 por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Fondo blanco o fondo negro « 1 2 »
Dudas Generales
limalimon1 16 2,766 Último mensaje 26 Noviembre 2004, 04:29
por limalimon1
Darle efecto Blur a una imagen con Java?
Java
McKain 0 1,223 Último mensaje 20 Agosto 2005, 00:05
por McKain
pequeño aporte(proxy),pero aporte al fin.:D
Programación Visual Basic
Tengu 0 880 Último mensaje 22 Julio 2007, 17:33
por Tengu
Blur, un Mario Kart con coches de verdad y gráficos de infarto
Noticias
wolfbcn 1 782 Último mensaje 16 Mayo 2010, 01:19
por anonimo12121
Aporte c++
Programación C/C++
Stakewinner00 8 986 Último mensaje 2 Septiembre 2012, 08:33
por Stakewinner00
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines