- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Chia sẽ code tạo Text Effect trong lập trình Winform
Xin chào các bạn, bài viết hôm nay mình chia sẻ đến các bạn, 8 đoạn code tạo hình ảnh từ Text có hiệu ứng trong lập trình C#, Winform.
[C#] Text Effect Winform
Trong bài này, mình sẽ sử dụng thư viện: TextdesignerCSLibrary
Các bạn có thể download ở source code của mình
Dưới đây là hình ảnh các hiệu ứng chữ C# winform: Trông cũng giống WordArt trong Microsoft Word. ^^
Full source code Text Effect C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TextDesignerCSLibrary;
namespace testeffect
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.Image = TextToImage();
pictureBox2.Image = TextToImage2();
pictureBox3.Image = TextToImage3();
pictureBox4.Image = TextToImage4();
pictureBox5.Image = TextToImage5();
pictureBox6.Image = TextToImage6();
pictureBox7.Image = TextToImage7();
pictureBox8.Image = TextToImage8();
}
public Image TextToImage()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
OutlineText text = new OutlineText();
text.TextDblOutline(Color.FromArgb(255, 255, 255),
Color.FromArgb(0, 128, 128), Color.FromArgb(0, 255, 0), 4, 4);
text.EnableShadow(true);
text.SetShadowBkgd(Color.FromArgb(255, 128, 192), bmp.Width, bmp.Height);
text.Shadow(Color.FromArgb(128, 0, 0, 0), 4, new Point(4, 8));
text.DrawString(gBmp, fontFamily,
FontStyle.Bold, 48, szbuf, new Point(10, 10), strformat);
}
return bmp;
}
}
public Image TextToImage2()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
OutlineText text = new OutlineText();
text.TextGlow(Color.FromArgb(191, 255, 255), Color.FromArgb(24, 0, 128, 128), 14);
text.EnableShadow(false);
text.DrawString(gBmp, fontFamily, FontStyle.Bold,
48, szbuf, new Point(10, 10), strformat);
}
return bmp;
}
}
public Image TextToImage3()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
OutlineText outlineText = new OutlineText();
outlineText.TextOutline(
Color.FromArgb(255, 128, 192),
Color.FromArgb(255, 128, 0, 0),
4);
outlineText.EnableShadow(true);
//Rem to SetNullShadow() to release memory if a previous shadow has been set.
outlineText.SetNullShadow();
outlineText.Extrude(
Color.FromArgb(255, 128, 0, 0),
4,
new Point(8, 8));
Color m_clrBkgd = Color.FromArgb(255, 255, 255);
outlineText.SetShadowBkgd(m_clrBkgd, bmp.Width, bmp.Height);
StringFormat strFormat = new StringFormat();
outlineText.DrawString(gBmp, fontFamily,
FontStyle.Regular, 48, szbuf,
new Point(10, 10), strFormat);
}
return bmp;
}
}
public Image TextToImage4()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
//Drawing the back ground color
Color m_clrBkgd = Color.FromArgb(255, 255, 255);
SolidBrush brushBkgnd = new SolidBrush(m_clrBkgd);
gBmp.FillRectangle(brushBkgnd, 0, 0, this.ClientSize.Width, this.ClientSize.Width);
PngOutlineText m_PngOutlineText = new PngOutlineText();
m_PngOutlineText.SetPngImage(new Bitmap(ClientSize.Width, ClientSize.Height));
m_PngOutlineText.TextGradOutline(
Color.FromArgb(255, 128, 64),
Color.FromArgb(255, 64, 0, 64),
Color.FromArgb(255, 255, 128, 255),
10, GradientType.Linear);
m_PngOutlineText.EnableReflection(false);
m_PngOutlineText.EnableShadow(true);
//Rem to SetNullShadow() to release memory if a previous shadow has been set.
m_PngOutlineText.SetNullShadow();
m_PngOutlineText.Shadow(
Color.FromArgb(128, 0, 0, 0), 8,
new Point(4, 4));
LOGFONT m_LogFont = new LOGFONT();
m_LogFont.lfFaceName = "Arial Black";
m_LogFont.lfHeight = -48;
m_LogFont.lfOrientation = 0;
m_LogFont.lfEscapement = 0;
m_LogFont.lfItalic = false;
float fStartX = 0.0f;
float fStartY = 0.0f;
float fDestWidth = 0.0f;
float fDestHeight = 0.0f;
m_PngOutlineText.GdiMeasureString(
gBmp,
m_LogFont,
szbuf,
new Point(10, 10),
ref fStartX,
ref fStartY,
ref fDestWidth,
ref fDestHeight);
m_PngOutlineText.SetShadowBkgd(m_clrBkgd, (int)fDestWidth + 10, (int)fDestHeight + 10);
LinearGradientBrush gradientBrush = new LinearGradientBrush(new RectangleF(fStartX, fStartY, fDestWidth - (fStartX - 10), fDestHeight - (fStartY - 10)),
Color.FromArgb(255, 128, 64), Color.FromArgb(255, 0, 0), LinearGradientMode.Vertical);
m_PngOutlineText.TextGradOutline(
gradientBrush,
Color.FromArgb(255, 64, 0, 64),
Color.FromArgb(255, 255, 128, 255),
10, GradientType.Linear);
m_PngOutlineText.GdiDrawString(
gBmp,
m_LogFont,
szbuf,
new Point(10, 10));
gBmp.DrawImage(m_PngOutlineText.GetPngImage(), new Point(0, 0));
}
return bmp;
}
}
public Image TextToImage5()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
SolidBrush brushWhite = new SolidBrush(Color.White);
gBmp.FillRectangle(brushWhite, 0, 0,
bmp.Width, bmp.Height);
GraphicsPath path = new GraphicsPath();
path.AddString(szbuf, fontFamily,
(int)FontStyle.Bold, 48.0f, new Point(10, 10), strformat);
Pen pen = new Pen(Color.FromArgb(0, 0, 160), 5);
pen.LineJoin = LineJoin.Round;
gBmp.DrawPath(pen, path);
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(10, 10, 30, 70),
Color.FromArgb(132, 200, 251),
Color.FromArgb(0, 0, 160), LinearGradientMode.Vertical);
gBmp.FillPath(brush, path);
brushWhite.Dispose();
fontFamily.Dispose();
path.Dispose();
pen.Dispose();
brush.Dispose();
gBmp.Dispose();
}
return bmp;
}
}
public Image TextToImage6()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
SolidBrush brushWhite = new SolidBrush(Color.White);
gBmp.FillRectangle(brushWhite, 0, 0,
bmp.Width, bmp.Height);
GraphicsPath path = new GraphicsPath();
path.AddString(szbuf, fontFamily,
(int)FontStyle.Regular, 48.0f, new Point(10, 10), strformat);
Pen penOut = new Pen(Color.FromArgb(32, 117, 81), 12);
penOut.LineJoin = LineJoin.Round;
gBmp.DrawPath(penOut, path);
Pen pen = new Pen(Color.FromArgb(234, 137, 6), 6);
pen.LineJoin = LineJoin.Round;
gBmp.DrawPath(pen, path);
SolidBrush brush = new SolidBrush(Color.FromArgb(128, 0, 255));
gBmp.FillPath(brush, path);
brushWhite.Dispose();
fontFamily.Dispose();
path.Dispose();
penOut.Dispose();
pen.Dispose();
brush.Dispose();
gBmp.Dispose();
}
return bmp;
}
}
public Image TextToImage7()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
SolidBrush brushWhite = new SolidBrush(Color.White);
gBmp.FillRectangle(brushWhite, 0, 0,
bmp.Width, bmp.Height);
GraphicsPath path = new GraphicsPath();
path.AddString(szbuf, fontFamily,
(int)FontStyle.Regular, 48.0f, new Point(10, 10), strformat);
for (int i = 1; i < 8; ++i)
{
Pen pen = new Pen(Color.FromArgb(32, 0, 128, 192), i);
pen.LineJoin = LineJoin.Round;
gBmp.DrawPath(pen, path);
pen.Dispose();
}
SolidBrush brush = new SolidBrush(Color.FromArgb(255, 255, 255));
gBmp.FillPath(brush, path);
brushWhite.Dispose();
fontFamily.Dispose();
path.Dispose();
brush.Dispose();
gBmp.Dispose();
}
return bmp;
}
}
public Image TextToImage8()
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
string szbuf = "LAPTRINHVB.NET";
FontFamily fontFamily = new FontFamily("Roboto");
StringFormat strformat = new StringFormat();
var font = new Font("Roboto", 48, FontStyle.Bold);
SizeF sz = g.MeasureString(szbuf, font);
Bitmap bmp = new Bitmap((int)sz.Width, (int)sz.Height);
using (Graphics gBmp = Graphics.FromImage(bmp))
{
gBmp.SmoothingMode = SmoothingMode.AntiAlias;
gBmp.InterpolationMode = InterpolationMode.HighQualityBicubic;
OutlineText outlineText = new OutlineText();
outlineText.TextOutline(
Color.FromArgb(255, 128, 192),
Color.FromArgb(255, 0, 0, 160),
4);
outlineText.EnableShadow(true);
//Rem to SetNullShadow() to release memory if a previous shadow has been set.
outlineText.SetNullShadow();
outlineText.Shadow(Color.FromArgb(128, 0, 0, 0), 4, new Point(4, 8));
Color m_clrBkgd = Color.FromArgb(255, 255, 255);
outlineText.SetShadowBkgd(m_clrBkgd, bmp.Width, bmp.Height);
StringFormat strFormat = new StringFormat();
float fDestWidth = 0.0f;
float fDestHeight = 0.0f;
float fDestStart = 0.0f;
float fDestEnd = 0.0f;
outlineText.MeasureString(
gBmp,
fontFamily,
FontStyle.Italic,
48,
szbuf,
new Point(10, 10),
strFormat,
ref fDestStart,
ref fDestEnd,
ref fDestWidth,
ref fDestHeight);
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(10, 10,
(int)fDestWidth, (int)fDestHeight),
Color.FromArgb(132, 200, 251), Color.FromArgb(0, 0, 160),
System.Drawing.Drawing2D.LinearGradientMode.Vertical);
outlineText.TextOutline(
brush,
Color.FromArgb(255, 0, 0, 160),
4);
outlineText.DrawString(gBmp, fontFamily,
FontStyle.Italic, 48, szbuf,
new Point(10, 10), strFormat);
gBmp.Dispose();
}
return bmp;
}
}
}
}
Thanks for watching!