Горящий текст

Красивый эффект "горящего" текста на форме:

Горящий текст 300x232 Горящий текст

Imports System.Drawing.Drawing2D
Public Class Form1
    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
        Me.BackColor = Color.Black
        'создаем лист для рисования 58х43
        Dim bm As New Bitmap(CInt(Me.ClientSize.Width / 5), CInt(Me.ClientSize.Height / 5))
        'создаем траекторию
        Dim pth As New GraphicsPath
        'добавим строку в заданном стиле
        pth.AddString("VB.NET", New FontFamily("Tahoma"), CInt(FontStyle.Bold), 48, New Point(70, 60), StringFormat.GenericTypographic)
        'создаем поверхность для рисования
        Dim g As Graphics = Graphics.FromImage(bm)
        Dim mx As Matrix
        mx = New Matrix(1.0F / 5, 0, 0, _
                        1.0F / 5, -(1.0F / 5), _
                        -(1.0F / 5))
        'выберем режим сглаживания для поверхности
        g.SmoothingMode = SmoothingMode.AntiAlias
        'преобразуем объект Graphics
        g.Transform = mx
        'создадим перо
        Dim p As New Pen(Color.Tomato, 3)
        'рисуем вокруг созданного пути
        g.DrawPath(p, pth)
        'и заполняем для лудшего эфекта
        g.FillPath(Brushes.Yellow, pth)
        'освобождаем ресурсы
        g.Dispose()
        'установим режим сглаживания для контура (действие на форму)
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
        'e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic
        'и расширяем картинку для создания размытости краев
        e.Graphics.DrawImage(bm, ClientRectangle, 0, 0, bm.Width, bm.Height, GraphicsUnit.Pixel)
        'перерисовываем оригинальный текст
        e.Graphics.FillPath(Brushes.Black, pth)
        'освобождаем ресурсы
        pth.Dispose()
    End Sub
End Class

Источник

  Метки:
  Евгений
  Просмотров: 4 706
  Запись опубликована в 15:31

Есть что сказать? Тогда действуй!