using System; using System.Drawing; using System.IO; using System.Drawing.Imaging; namespace Media { /// <summary> /// Game's Resources /// </summary> /// <remarks> /// <para>DATE:2009/07/23</para> /// <para>AUTHOR:THINKINGALL</para> /// </remarks> public class Resources { /// <summary> /// 定义象形符号 /// </summary> public char[] charSymbol = { '¤','¥','¢','£','¶','Ж','ξ','Ч','Ц','Ф', 'Ω','ζ','δ','Ю','Я','М','К','Л','Ю','й', 'и','д','€','ё','⊙','⊕','Ъ','◎','Г','♀', '♂','☉','Γ','Δ','Ε','Ζ','Η','Θ','Ι','Π', 'Ρ','Σ','Φ','μ','κ','λ','ε','Ы','Ъ','Щ', '℃','№','∮','∵','∴','≒','£','@','»','«', 'η','ρ','σ','α','υ','ψ','Ё','Э','Ч','Ц', 'ф','‡','†','ρ','ο','λ','κ','☆','У','Б', 'κ','б','Й','φ','ο','Х','Ц','Ч','Ш','Щ', 'Ы','Ь','Э','н','м','л','к','й','и','з' }; /// <summary> /// 象形符号显示坐标,倒序排列 /// </summary> public int[] coordinate = { 0,20,40,60,80, 1,21,41,61,81, 2,22,42,62,82, 3,23,43,63,83, 4,24,44,64,84, 5,25,45,65,85, 6,26,46,66,86, 7,27,47,67,87, 8,28,48,68,88, 9,29,49,69,89, 10,30,50,70,90, 11,31,51,71,91, 12,32,52,72,92, 13,33,53,73,93, 14,34,54,74,94, 15,35,55,75,95, 16,36,56,76,96, 17,37,57,77,97, 18,38,58,78,98, 19,39,59,79,99 }; /* /// <summary> /// 象形符号显示坐标,顺序排列 /// </summary> public int[] coordinate = { 99,79,59,39,19, 98,78,58,38,18, 97,77,57,37,17, 96,76,56,36,16, 95,75,55,35,15, 94,74,54,34,14, 93,73,53,33,13, 92,72,52,32,12, 91,71,51,31,11, 90,70,50,30,10, 89,69,49,29,9, 88,68,48,28,8, 87,67,47,27,7, 86,66,46,26,6, 85,65,45,25,5, 84,64,44,24,4, 83,63,43,23,3, 82,62,42,22,2, 81,61,41,21,1, 80,60,40,20,0 }; */ /// <summary> /// 字符图像个数 /// </summary> public const int SYMBOL_NUM = 99; /// <summary> /// 字符图像名 /// </summary> public const string CHARPIC_NAME = "charPic.bmp"; /// <summary> /// 值:0 /// </summary> private const string ZERO_KEY = "0"; /// <summary> /// 冒号 /// </summary> private const string COLON_KEY = ":"; /// <summary> /// tab key /// </summary> private const string TAB_KEY = "/t"; /// <summary> /// 回车换行 /// </summary> private const string ENTER_KEY = "/r/n"; // 为了每次点击按钮产生不同随机序列使用一个对象 private Random random = new Random(); /// <summary> /// 把字符重新组合成字符串 /// </summary> public string GetSymbolStr() { // 转换字符串 string strSymbol = string.Empty; for (int i = SYMBOL_NUM; i >= 0; i--) { if (coordinate[i] <= 9) { strSymbol += ZERO_KEY + coordinate[i].ToString() + COLON_KEY; } else { strSymbol += coordinate[i].ToString() + COLON_KEY; } // 产生0-99的随机数 int intRandom = random.Next(0, charSymbol.Length); strSymbol += charSymbol[intRandom] + TAB_KEY; // 显示满五个就回车 if (0 != i && 0 == i % 5) { strSymbol += ENTER_KEY; } } return strSymbol; } /// <summary> /// 将字符转换成图像,保存在当前目录下 /// </summary> public void stringToImage() { // 要转换的字符串 string strSymbol = GetSymbolStr(); //实例化图像对象 Bitmap image = new Bitmap(350, 400); //封装一个 GDI+ 绘图图面 Graphics g = Graphics.FromImage(image); g.Clear(Color.White); // 设置字体样式 Font font = new Font("Arial", 12,FontStyle.Bold); // 设置字体颜色 Brush brush = Brushes.DarkRed; // 绘制字符的坐标 Point point = new Point(15, 15); // 画字符串 g.DrawString(strSymbol, font, brush, point); // 保存图像到文件 image.Save(CHARPIC_NAME); } } }