public static Boolean writeFile(string outputFileName, WinnerGroup wg) { try { FileStream fs = new FileStream(outputFileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.WriteLine(wg.theme); for (int i = 0; i < wg.winnerGroup.Count; i++) { if (i < wg.WinnerCondition.firstPrizeNumber) { sw.WriteLine("一等奖:" + wg.winnerGroup[i].name + "(" + wg.winnerGroup[i].ID + ")"); } else if (i >= wg.WinnerCondition.firstPrizeNumber && i < wg.WinnerCondition.firstPrizeNumber + wg.WinnerCondition.secondPrizeNumber) { sw.WriteLine("二等奖:" + wg.winnerGroup[i].name + "(" + wg.winnerGroup[i].ID + ")"); } else { sw.WriteLine("三等奖:" + wg.winnerGroup[i].name + "(" + wg.winnerGroup[i].ID + ")"); } } sw.Flush(); sw.Close(); fs.Close(); return(true); } catch (Exception e) { Console.WriteLine(e.ToString()); return(false); } }
static Boolean writeFile(String outputFileName, WinnerGroup wg) { try { FileStream fs = new FileStream(outputFileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.WriteLine(wg.theme); for (int i = 0; i < wg.winnerGroup.Count; i++) { sw.WriteLine(i + 1 + ":" + wg.winnerGroup[i].name + "(" + wg.winnerGroup[i].ID + ")"); } sw.Flush(); sw.Close(); fs.Close(); return(true); } catch (Exception e) { return(false); } }
private void LuckyDrawButton_Click(object sender, RoutedEventArgs e) { if (FilePathLabel.Content.Equals("NULL")) { MessageBox.Show("文件为空,请选择文件!"); return;//放弃 } if (Key.Text.Equals("")) { MessageBox.Show("活动关键字为空,请输入关键字!"); return;//放弃 } if (getSelectedType() == 0) { MessageBox.Show("请选择抽奖人员类型!"); return;//放弃 } Condition condition = new Condition(); condition.type = getSelectedType(); condition.frequency = FrequenceNum.Text.Equals("") ? 1 : Int32.Parse(FrequenceNum.Text); condition.starTime = StartDate.SelectedDate ?? DateTime.Now; condition.endTime = EndDate.SelectedDate ?? DateTime.Now.AddDays(7);//默认七天 condition.firstPrizeNumber = FirstPrizeNum.Text.Equals("") ? 1 : Int32.Parse(FirstPrizeNum.Text); condition.secondPrizeNumber = SecondPrizeNum.Text.Equals("") ? 2 : Int32.Parse(SecondPrizeNum.Text); condition.thirdPrizeNumber = ThirdPrizeNum.Text.Equals("") ? 3 : Int32.Parse(ThirdPrizeNum.Text); StringBuilder keyText = new StringBuilder("#"); keyText.Append(Key.Text); keyText.Append("#"); condition.key = keyText.ToString(); //Console.WriteLine("FrequenceNum "+ frequence); //Console.WriteLine("startDate " + startDate); //Console.WriteLine("endDate " + endDate); //Console.WriteLine("firstPrizeNum " + firstPrizeNum); //Console.WriteLine("secondPrizeNum " + secondPrizeNum); //Console.WriteLine("thirdPrizeNum " + thirdPrizeNum); Channel a = new Channel(FileProcess.readFile(FilePathLabel.Content.ToString())); //构造群 a.InitializeGroupMember(); //构造成员 lastResult = a.GetLuckyGuys(condition); MessageBox.Show("抽奖程序执行完毕,请跳转结果页进行查看."); StringBuilder tempString = new StringBuilder(lastResult.theme + "\n"); for (int i = 0; i < lastResult.winnerGroup.Count; i++) { if (i < lastResult.WinnerCondition.firstPrizeNumber) { tempString.Append("一等奖:" + lastResult.winnerGroup[i].name + "(" + lastResult.winnerGroup[i].ID + ")\n"); } else if (i >= lastResult.WinnerCondition.firstPrizeNumber && i < lastResult.WinnerCondition.firstPrizeNumber + lastResult.WinnerCondition.secondPrizeNumber) { tempString.Append("二等奖:" + lastResult.winnerGroup[i].name + "(" + lastResult.winnerGroup[i].ID + ")\n"); } else { tempString.Append("三等奖:" + lastResult.winnerGroup[i].name + "(" + lastResult.winnerGroup[i].ID + ")\n"); } } ResultBox.Text = tempString.ToString(); }
public static void OutputResultAsImage(WinnerGroup winnerGroup, string sImgPath) { using (Image image = (Image)Properties.Resources.ResourceManager.GetObject("winner")) { try { Bitmap bitmap = new Bitmap(image); int width = bitmap.Width, height = bitmap.Height; //测试文字 string text = "一等奖 巴扎黑"; //string[] texts = {"一等奖 巴扎黑", "一等奖 巴扎黑", "一等奖 巴扎黑" , "一等奖 巴扎黑" , "一等奖 巴扎黑" , "一等奖 巴扎黑" , "一等奖 巴扎黑" , "一等奖 巴扎黑" }; Graphics g = Graphics.FromImage(bitmap); g.DrawImage(bitmap, 0, 0); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.DrawImage(image, new Rectangle(0, 0, width, height), 0, 0, width, height, GraphicsUnit.Pixel); Font crFont = new Font("微软雅黑", 48, FontStyle.Bold); SizeF sizef = g.MeasureString(text, crFont);//得到文本的宽高 //背景位置(去掉了. 如果想用可以自己调一调 位置.) //graphics.FillRectangle(new SolidBrush(Color.FromArgb(200, 255, 255, 255)), (width - crSize.Width) / 2, (height - crSize.Height) / 2, crSize.Width, crSize.Height); SolidBrush semiTransBrush = new SolidBrush(Color.White); //new SolidBrush(Color.FromArgb(120, 177, 171, 171)); //将原点移动 到图片开始输出部分 float startY = height / 20 * 9; g.TranslateTransform(0, startY); //以原点为中心 转 -45度 //g.RotateTransform(-45); float currentY = 0; for (int i = 0; startY + currentY < image.Width && i < winnerGroup.winnerGroup.Count; currentY += sizef.Height + 10, i++) { string tempLine; if (i < winnerGroup.WinnerCondition.firstPrizeNumber) { tempLine = $"一等奖:{winnerGroup.winnerGroup[i].name}({winnerGroup.winnerGroup[i].ID})";//输出的字符串 } else if (i >= winnerGroup.WinnerCondition.firstPrizeNumber && i < winnerGroup.WinnerCondition.firstPrizeNumber + winnerGroup.WinnerCondition.secondPrizeNumber) { tempLine = $"二等奖:{winnerGroup.winnerGroup[i].name}({winnerGroup.winnerGroup[i].ID})";//输出的字符串 } else { tempLine = $"三等奖:{winnerGroup.winnerGroup[i].name}({winnerGroup.winnerGroup[i].ID})"; //输出的字符串 } sizef = g.MeasureString(tempLine, crFont); //得到文本的宽高 g.DrawString(tempLine, crFont, semiTransBrush, new PointF((image.Width - sizef.Width) / 2, currentY)); } //保存文件 bitmap.Save(sImgPath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception e) { Console.WriteLine(); } } }