- //个性二维码生成最小单元
- public override Bitmap Encode(string content)
- {
- try
- {
- matrix = QrCodeEncoder.calQrcode(EnCoding.GetBytes(content));
- }
- catch { throw new Exception("内容超出范围,请选择更高版本或者降低容错率"); }
- this.SetParam();
- //SolidBrush Backbrush = new SolidBrush(QrCodeEncoder.QRCodeBackgroundColor);
- SolidBrush Backbrush = new SolidBrush(Color.Transparent);//背景透明
- SolidBrush Forebrush = new SolidBrush(QrCodeEncoder.QRCodeForegroundColor);
- Bitmap image = new Bitmap(this.QrCodeW, this.QrCodeH);
- Graphics g = Graphics.FromImage(image);
- Rectangle rect = new Rectangle();
- g.FillRectangle(Backbrush, new Rectangle(0, 0, image.Width, image.Height));
- for (int i = 0; i < matrix.Length; i++)
- {
- for (int j = 0; j < matrix.Length; j++)
- {
- rect = new Rectangle((j + this.SpacingW) * QrCodeEncoder.QRCodeScale, (i + this.SpacingH) * QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale);
- if (matrix[j][i])
- {
- ChangeFillShape(g, Forebrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
- }
- else
- ChangeFillShape(g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
- }
- }
- return image;
- }
- //该片段来自于http://www.codesnippet.cn/detail/1101201614391.html
来源: http://www.codesnippet.cn/detail/1101201614391.html