Page 1 of 2

Glowing Label

Posted: Mon Apr 22, 2013 1:04 pm
by 3aaBrSbeel
We will be making a Glowing Label not the Blinking Label. Sorry guys, I don't have a deep explanation for this thread. But let me just show you what it is.
4-22-2013 8-47-23 PM.png
As you look closer, you can see the Label is glowing.
Okay, so here it is on how to add the Glowing Label.

First, let's create a new project or just use your current project you are making.
Then, let's add a new class to our project. When you have created a new class, let's now add our code.

First, let's import
Code: Select all
System.Runtime.InteropServices
and
Code: Select all
System.Drawing.Imaging
to our class.
When we have done that, let's add the codes.
Code: Select all
Public Class GlowingLabel
    Inherits Label

    Private _glowColor As Color = Color.White

    Public Overridable Property GlowColor() As Color
        Get
            Return _glowColor
        End Get
        Set(ByVal value As Color)
            _glowColor = value
            Me.Invalidate()
        End Set
    End Property

    Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaintBackground(pevent)

        Using b As New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)
            Using g As Graphics = Graphics.FromImage(b)
                Dim e As New PaintEventArgs(g, pevent.ClipRectangle)

                Me.OnPaint(e)
            End Using

            BlurImage(b)

            pevent.Graphics.DrawImageUnscaled(b, 0, 0)
        End Using
    End Sub

    <StructLayout(LayoutKind.Explicit)>
    Private Structure ColorArgb
        <FieldOffset(0)> Public Value As Integer
        <FieldOffset(3)> Public A As Byte
        <FieldOffset(2)> Public R As Byte
        <FieldOffset(1)> Public G As Byte
        <FieldOffset(0)> Public B As Byte
    End Structure

    Private Sub BlurImage(ByVal b As Bitmap)
        Const Radius As Integer = 1

        Dim bd As BitmapData = b.LockBits(New Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb)
        Dim arr(bd.Width * bd.Height - 1) As Integer
        Dim arr2(arr.Length - 1) As Integer
        Marshal.Copy(bd.Scan0, arr, 0, arr.Length)
        Marshal.Copy(bd.Scan0, arr2, 0, arr2.Length)

        Dim vals(8) As ColorArgb
        Dim val As ColorArgb
        val.R = Me.GlowColor.R
        val.G = Me.GlowColor.G
        val.B = Me.GlowColor.B

        For i As Integer = 1 To Radius
            For x As Integer = 1 To bd.Width - 2
                For y As Integer = 1 To bd.Height - 2
                    For dX As Integer = -1 To 1
                        For dY As Integer = -1 To 1
                            vals(dY * 3 + dX + 4).Value = arr2((y + dY) * bd.Width + x + dX)
                        Next
                    Next

                    val.A = CByte((From z As ColorArgb In vals Select CInt(z.A)).Sum() \ 9)

                    arr(y * bd.Width + x) = val.Value
                Next
            Next
            If i < Radius Then arr2 = DirectCast(arr.Clone(), Integer())
        Next

        Marshal.Copy(arr, 0, bd.Scan0, arr.Length)
        b.UnlockBits(bd)
    End Sub
End Class
Done? Now, let's debug. After we have debug our project let's check our Toolbox if there is a new Element added.
It's named GlowingLabel. Add that to your new form/current form. You can change the Text Color, if you want to change the Glow Color. Click the Label and in it's properties there is GlowColor, it's default color is White.

Well, that's all. I hope this will be useful in your project. Thanks! loove;

Author here: http://www.vbforums.com/showthread.php? ... g-Controls

Re: Glowing Label

Posted: Mon Apr 22, 2013 1:33 pm
by AnoPem
Very nice, can it be used on picture ?

Re: Glowing Label

Posted: Mon Apr 22, 2013 2:20 pm
by Dummy1912
sure #AnoPem
just need a few changes and will work :) on a picturebox

even change Inherits Label to Inherits Picturebox
and a few other changes :)

Re: Glowing Label

Posted: Mon Apr 22, 2013 2:52 pm
by Codex
..And the credit goes to http://www.vbforums.com/showthread.php? ... g-Controls
In there they explain how to use it on other controls.

Re: Glowing Label

Posted: Tue Apr 23, 2013 1:31 am
by smashapps
This is nice but I don't see the glow very well also I think this should probably of been posted in the Snippets section as you don't really explain much. You've told us what you're going to do and then just given us the code.

Re: Glowing Label

Posted: Tue Apr 23, 2013 3:39 am
by Shim
smashapps wrote:
This is nice but I don't see the glow very well also I think this should probably of been posted in the Snippets section as you don't really explain much. You've told us what you're going to do and then just given us the code.
snippet = piece of code !! so this is not a snippet !

very nice tutorial ! cooll;

Re: Glowing Label

Posted: Tue Apr 23, 2013 5:06 am
by smashapps
It is more of a snippet than a tutorial though. He isn't explaining the code only what the entire thing is.

Re: Glowing Label

Posted: Tue Apr 23, 2013 5:19 am
by noypikami
very nice .............. good work

Re: Glowing Label

Posted: Tue Apr 23, 2013 9:27 pm
by Livengood
Hmmmm, very interesting ill have to take a look at this.

Re: Glowing Label

Posted: Tue Apr 23, 2013 10:47 pm
by noypikami
i've tried it,,, its owesome... i changed the glow to red and to any different colors... looks COOL...