后台生成图片

(作者:杨先金;撰写时间:2019年4月23日)
以生成证书为例,讲解一下如何实现在后台生成证书图片。
1、首先是证书数据的绑定:
定义一个Certifkicate()的方法,将获取到的选中行的数据一一进行绑定,为后续的生成图片做好准备工作。
在这里插入图片描述
2、然后是生成证书(单条&批量新增证书表数据):
获取选中行,判断是否选中数据,如果选中数据的长度小于或等于0,那么弹出提示框"请选择需要生成证书的成绩信息!",否则定义一个空的变量AchievementIDs来接收数据,for循环选中行的长度,并把选中行的每一个AchievementID用“;”拼接起来,变量AchievementIDs += checkStatus.data[i].AchievementID + “;”;
使用substring()方法去掉最后的一个“;”,然后打开询问提示框,询问用户"确定要为选中的数据生成证书吗?",确定之后关闭提示框,到控制器请求数据;
如果请求到的数据的状态为true,那么刷新表格,提示用户"总共选择" + AchievementIDs.Length + “条数据,其中新增成功” + successCount + “条数据,有” + oldCount + “条数据已经有证书”;否则提示用户"参数为空!“或者"数据异常”。
在这里插入图片描述
3、最后生成图片:
获取证书信息表选中行数据,判断当前是否只选择一条数据,如果为多条数据,提示用户"只能选择一条数据生成图片",如果为0条,则输出"请选择一条数据生成图片";
当只选中一条数据的情况,获取证书的ID,根据此ID到控制器生成图片,成功后打开一个新的页面。
在这里插入图片描述
根据证书ID查询证书信息,接下来就是绘制图片,在此之前,我们先要引用一下“System.Drawing”,因为我们需要用到它里面的一些静态类方法,比如Bitmap、Graphics和SolidBrush。
Bitmap:是用于处理由像素数据定义的图像的对象;Graphics:封装一个 GDI+ 绘图图面;SolidBrush:定义单色画笔,画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。
生成图片的主要步骤:获取空白证书的物理地址,将图片转化为位图(栅格图),封装一个绘画图面,定义单色的画笔,在绘画图面写上“考生姓名”、“考试时间”,绘制成绩,绘制证书编号,绘制证书时间,具体代码如下图所示;
在这里插入图片描述
将图像以jpeg的格式保存到流中,以byte类型输出,最后返回一个文件,文件类型为@“image/jpeg”。
4、最终的效果图如下:
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值