外观
二维码图片添加文字
public static string QRCodeAppendFont(string enCodeString, string name, string fileName)
{
try
{
string regDate = DateTime.Now.ToString("yyyy-MM-dd");
string file_path = AppDomain.CurrentDomain.BaseDirectory + "QRCode\\" + regDate + "\\";
string codeUrl = file_path + fileName + ".jpg";
string buildUrl = "/QRCode/" + regDate + "/" + fileName + ".jpg";
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
qrCodeEncoder.QRCodeScale = 6; //大小(值越大生成的二维码图片像素越高)
qrCodeEncoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)
qrCodeEncoder.QRCodeBackgroundColor = Color.White;//背景色
qrCodeEncoder.QRCodeForegroundColor = Color.Black;//前景色
Bitmap bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
if (!System.IO.Directory.Exists(file_path))
System.IO.Directory.CreateDirectory(file_path);
Bitmap panel = new Bitmap(500, 800);
Graphics g = Graphics.FromImage(panel);
g.Clear(Color.White);
g.DrawImage(bt, (panel.Width - bt.Width) / 2, 100, bt.Width, bt.Height);
g.DrawString("电子健康卡", new Font("微软雅黑", 13f, FontStyle.Bold), Brushes.Black, new PointF((panel.Width - 100) / 2, 50));//(panel.Width- bt.Width)/2
g.DrawString($"姓名: {name}", new Font("微软雅黑", 12f, FontStyle.Regular), Brushes.Black, new PointF((panel.Width - bt.Width) / 2, bt.Height + 120));
g.DrawString(DateTime.Now.ToString("yyyy-MM-dd HH:mm"), new Font("微软雅黑", 7f, FontStyle.Regular), Brushes.Black, new PointF((panel.Width - bt.Width) / 2, bt.Height + 120 + 40));
bt = new Bitmap(panel);
bt.Save(codeUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
qrCodeEncoder = null;
panel.Dispose();
bt.Dispose();
return codeUrl;
}
catch (Exception ex)
{
return "";
}
}