NEWS

[C#] Hướng dẫn tạo hiệu ứng Fancy Text Effect Winform

[C#] Hướng dẫn tạo hiệu ứng Fancy Text Effect Winform
Đăng bởi: Thảo Meo - Lượt xem: 4505 11:21:45, 24/04/2021C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ tiếp tục hướng dẫn các bạn cách tạo hiệu ứng Fancy Text Effect trong lập trình C#, Winform.

[C#] Fancy Text Effect Winform

Dưới đây là giao diện demo hiệu ứng Effect Text, kiểu đổ bóng Shadow background.

fancytexteffect

Để sử dụng các bạn tạo cho mình một hàm ImageFromText như sau:

public Image ImageFromText(string strText, Font fnt, Color clrFore, Color clrBack, int blurAmount= 6)
{
	Bitmap bmpOut = null; 

	using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
	{
		SizeF sz = g.MeasureString(strText, fnt);
		using (Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height))
		using (Graphics gBmp = Graphics.FromImage(bmp))
		using (SolidBrush brBack = new SolidBrush(Color.FromArgb(16, clrBack.R, clrBack.G, clrBack.B)))
		using (SolidBrush brFore = new SolidBrush(clrFore))
		{
			gBmp.SmoothingMode = SmoothingMode.HighQuality;
			gBmp.InterpolationMode = InterpolationMode.HighQualityBilinear;
			gBmp.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

			gBmp.DrawString(strText, fnt, brBack, 0, 0);

			// make bitmap we will return.
			bmpOut = new Bitmap(bmp.Width + blurAmount, bmp.Height + blurAmount);
			using (Graphics gBmpOut = Graphics.FromImage(bmpOut))
			{
				gBmpOut.SmoothingMode = SmoothingMode.HighQuality;
				gBmpOut.InterpolationMode = InterpolationMode.HighQualityBilinear;
				gBmpOut.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

				// smear image of background of text about to make blurred background "halo"
				for (int x = 0; x <= blurAmount; x++)
					for (int y = 0; y <= blurAmount; y++)
						gBmpOut.DrawImageUnscaled(bmp, x, y);

				// draw actual text
				gBmpOut.DrawString(strText, fnt, brFore, blurAmount / 2, blurAmount / 2);
			}
		}
	}

	return bmpOut;
}

Và khi sử dụng chúng ta chỉ cần gọi hàm và truyền vào 5 thông số sau:

  1. Tên chữ 
  2. Màu nền
  3. Màu chữ
  4. Font chữ
  5. Độ đổ bóng
private void btn_Gen_Click(object sender, EventArgs e)
{
	pictureBox1.Image = ImageFromText(txtText.Text, new Font("Tahoma", 20, FontStyle.Bold), btn_background.BackColor, btnForeground.BackColor, 8);

}

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn tạo hiệu ứng Fancy Text Effect Winform
Đăng bởi: Thảo Meo - Lượt xem: 4505 11:21:45, 24/04/2021C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.