In this article, I will explain one method to generate random text and explore it in image, text color, style and spaces between letters and symbols chosen randomly.
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
Random rnd = new Random();
protected void Page_Load(object sender, EventArgs e)
{
Generate_RandomImage();
}
void Generate_RandomImage()
{
Bitmap img = new Bitmap(400, 50);
Graphics gr = Graphics.FromImage(img);
string strSource = "The apple is the pomaceous fruit of the apple tree, species Malus domestica in the rose family (Rosaceae) and is a perennial.";
List<char> lstChars = strSource.ToList<char>();
int cntChars = 10;
List<char> tmp = (lstChars.ToArray<char>()).ToList<char>();
lstChars.Clear();
for (int c = 1; c <= cntChars; c++)
{
next:
int randIndex = rnd.Next(0, tmp.Count - 1);
char chr = tmp[randIndex];
if (chr == ' ')
{
goto next;
}
else
{
lstChars.Add(chr);
}
}
Font font = new Font("Arial", 20, Random_FontStyle());
System.Text.StringBuilder txt = new System.Text.StringBuilder();
foreach (char item in lstChars)
{
txt.Append(item.ToString() + Generate_Spaces());
}
gr.DrawString(txt.ToString(), font, Random_Color(), 0, 0);
Response.ContentType = "image/png";
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
gr.Dispose();
img.Dispose();
}
string Generate_Spaces()
{
int cnt = rnd.Next(0, 2);
StringBuilder sb = new StringBuilder();
for (int c = 0; c <= cnt; c++)
{
sb.Append(" ");
}
return sb.ToString();
}
FontStyle Random_FontStyle()
{
int rndStyle = rnd.Next(1, 4);
FontStyle style = FontStyle.Italic;
switch (rndStyle)
{
case 1:
style = FontStyle.Bold;
break;
case 2:
style = FontStyle.Italic;
break;
case 3:
style = FontStyle.Regular;
break;
case 4:
style = FontStyle.Strikeout;
break;
case 5:
style = FontStyle.Underline;
break;
}
return style;
}
Brush Random_Color()
{
Brush col = Brushes.Black;
int randCol = rnd.Next(1, 5);
switch (randCol)
{
case 1:
col = Brushes.Red;
break;
case 2:
col = Brushes.Green;
break;
case 3:
col = Brushes.Red;
break;
case 4:
col = Brushes.Orange;
break;
case 5:
col = Brushes.Black;
break;
}
return col;
}
}