private void Generate() { try { var qrcode = new QRCode(new Options(Text)); qrcode.Make(); var c = qrcode.GetModuleCount(); var bitmap = new bool[c][]; for (var row = 0; row < c; row++) { bitmap[row] = new bool[c]; for (var col = 0; col < c; col++) { var isDark = qrcode.IsDark(row, col); bitmap[row][col] = isDark; } } Bitmap = bitmap; } catch (Exception ex) { Text = "Sorry, an error: " + ex.Message; Bitmap = null; } }
private void Generate() { try { var qrcode = new QRCode(new Options(Text)); qrcode.Make(); var c = qrcode.GetModuleCount(); var bitmap = new bool[c][]; for (var row = 0; row < c; row++) { bitmap[row] = new bool[c]; for (var col = 0; col < c; col++) { var isDark = qrcode.IsDark(row, col); bitmap[row][col] = isDark; } } Bitmap = bitmap; } catch (Exception ex) { Text = "Sorry, an error: " + ex.Message; Bitmap = null; } }
//called when data for any output pin is requested public void Evaluate(int SpreadMax) { FOutput.SliceCount = SpreadMax; FSize.SliceCount = SpreadMax; FError.SliceCount = SpreadMax; for (int i = 0; i < SpreadMax; i++) { if (FGen[i]) { FError[i] = ""; try { QRCode4CS.Options options = new QRCode4CS.Options(FInput[i]); options.TypeNumber = FTypeN[i]; options.CorrectLevel = FErrorC[i]; QRCode qrcode = new QRCode(options); qrcode.Make(); int mcount = qrcode.GetModuleCount(); FOutput[i].SliceCount = mcount * mcount; for (int row = 0; row < mcount; row++) { for (int col = 0; col < mcount; col++) { bool isDark = qrcode.IsDark(row, col); FOutput[i][row * mcount + col] = isDark; } } FSize[i] = mcount; } catch (Exception e) { FSize[i] = 0; FOutput[i].SliceCount = 0; FError[i] = e.Message; } } } //FLogger.Log(LogType.Debug, "hi TTY"); }
private void Draw() { int typeNumber; if (_text.Length < 26) typeNumber = 2; else if (_text.Length < 72) typeNumber = 5; else if (_text.Length < 125) typeNumber = 7; else if (_text.Length < 203) typeNumber = 10; else if (_text.Length < 298) typeNumber = 12; else if (_text.Length < 407) typeNumber = 15; else if (_text.Length < 534) typeNumber = 17; else if (_text.Length < 669) typeNumber = 20; else { Close(); return; } QRCode qr; try { qr = new QRCode(typeNumber, QRErrorCorrectLevel.M); qr.AddData(_text); qr.Make(); } catch (Exception) { Close(); return; } var c = qr.GetModuleCount(); var b = new Bitmap(c, c); for (var row = 0; row < c; row++) { for (var col = 0; col < c; col++) { var isDark = qr.IsDark(row, col); b.SetPixel(row, col, isDark ? _darkColour : _backColour); } } var newImage = new Bitmap(_size, _size, PixelFormat.Format24bppRgb); var g = Graphics.FromImage(newImage); g.InterpolationMode = InterpolationMode.NearestNeighbor; g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.None; if (_border) { g.DrawImage(b, _borderWidth, _borderWidth, _size - _borderWidth * 2, _size - _borderWidth * 2); RectangleF[] r = {new RectangleF(0, 0, _size, _borderWidth), // Top new RectangleF(0, 0, _borderWidth, _size), // Left new RectangleF(_size - _borderWidth, 0, _borderWidth, _size), // Right new RectangleF(0, _size - _borderWidth, _size, _borderWidth)}; // Bottom g.DrawRectangles(new Pen(_borderColour, _borderWidth), r); } else g.DrawImage(b, 0, 0, _size, _size); panel1.BackgroundImage = newImage; }