1.添加引用
using System.Drawing;
2.画图方法
/// <summary>
/// 画图
/// </summary>
/// <param name="entity">实体 Model.ChargeInfo</param>
/// <param name="pathbg">背景图地址</param>
/// <param name="zpath">其他图 地址</param>
/// <returns></returns>
public byte[] GetReceipt(Model.ChargeInfo entity, string pathbg, string zpath)
{
Image image = Image.FromFile(pathbg);
var dest = new Bitmap(image.Width, image.Height);
Graphics g = Graphics.FromImage(dest);
g.Clear(Color.White);
g.DrawImage(image,new Rectangle(0, 0, dest.Width, dest.Height),0,0, image.Width, image.Height, GraphicsUnit.Pixel);
image.Dispose();
SolidBrush drawBrush = new SolidBrush(Color.Black);
SolidBrush drawred = new SolidBrush(Color.Red);
g.DrawString("年", new Font("微软雅黑", 25, FontStyle.Bold), drawred, 950, 240);
g.DrawString(entity.Putime.Month.ToString(), new Font("微软雅黑", 25), drawBrush, 1020, 240);
g.DrawString("月", new Font("微软雅黑", 25, FontStyle.Bold), drawred, 1090, 240);
g.DrawString(entity.Putime.Day.ToString(), new Font("微软雅黑", 25), drawBrush, 1160, 240);
g.DrawString("日", new Font("微软雅黑", 25, FontStyle.Bold), drawred, 1230, 240);
Image zimg = Image.FromFile(zpath);
g.DrawImage(zimg, new Rectangle((dest.Width / 2 - zimg.Width / 2-250), (dest.Height - zimg.Height / 2-30) + 30, 320, 200), 0, 0, zimg.Width, zimg.Height, GraphicsUnit.Pixel);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
dest.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
return ms.ToArray();
}
3.action调用画图方法
public ActionResult GetReceipt(int id)
{
ChargeInfo charge = db.ChargeInfo.Find(id);
charge.sta = db.standard.Find(charge.SID);
charge.TUser = db.TUser.Find(charge.UID);
if (charge.TUser == null)
{
charge.TUser = new TUser();
}
App_Code.ImgDarwing img = new App_Code.ImgDarwing();
var dest = img.GetReceipt(charge, Server.MapPath("~/images/timg.jpg"), Server.MapPath("~/images/cz.png"));
return File(dest, "application/octet-stream", "会费收据" + ".bmp");//下载图片
//return File(dest, "image/bmp");//预览图片
}
原文:https://www.cnblogs.com/keke2/p/13674473.html