Camstar关于二维码的生成及展示
Camstar Generate & Display QR Code
本文内容仅做参考并不完全通用,测试环境为OpcenterEXCR2410,其中数据均为演示所用无实际意义
在VP页面中添加Image Control
从左侧控件中拖出一个Image Control,设置长宽、默认不显示等属性
在CS代码中生成二维码并展示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| public void OptimalPressProgram_DataChanged(object sender, EventArgs e) { try { string data = _OptimalPressProgram.Data?.ToString();
if (!string.IsNullOrEmpty(data)) { string qrDir = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Images\\User\\PressQR");
CleanOldQrFiles(qrDir, 1);
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"; string filePath = System.IO.Path.Combine(qrDir, fileName);
var options = new EncodingOptions { Width = 200, Height = 200, };
options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
var writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = options };
using (Bitmap qrBitmap = writer.Write(data)) { int borderWidth = 1; int totalWidth = qrBitmap.Width + borderWidth * 2; int totalHeight = qrBitmap.Height + borderWidth * 2;
using (Bitmap borderedBitmap = new Bitmap(totalWidth, totalHeight)) using (Graphics g = Graphics.FromImage(borderedBitmap)) using (Pen blackPen = new Pen(System.Drawing.Color.Black, borderWidth)) { g.Clear(System.Drawing.Color.White); g.DrawImage(qrBitmap, new Point(borderWidth, borderWidth)); g.DrawRectangle(blackPen, borderWidth / 2, borderWidth / 2, totalWidth - borderWidth, totalHeight - borderWidth);
borderedBitmap.Save(filePath, ImageFormat.Png); } }
_PressQR.ImagePath = "PressQR/" + fileName; _PressQR.Visible = true; } else { _PressQR.Visible = false; } } catch (Exception ex) { Page.DisplayWarning("发生错误:" + ex.Message); } }
|
创建并设置图片存放文件夹
在代码中为Image控件的属性ImagePath设置为”PressQR/“ + fileName后,Camstar会从C:\Program Files (x86)\Camstar\Camstar Portal\Images\User\PressQR\fileName
读取文件
提前在该路径下创建文件夹并赋予权限,此处测试赋给Everyone全部权限(慎用)