private static void GenerateQRCode(string payloadString, QRCodeGenerator.ECCLevel eccLevel, string outputFileName, SupportedImageFormat imgFormat, int pixelsPerModule, string foreground, string background) { using (var generator = new QRCodeGenerator()) { using (var data = generator.CreateQrCode(payloadString, eccLevel)) { switch (imgFormat) { case SupportedImageFormat.Png: case SupportedImageFormat.Jpg: case SupportedImageFormat.Gif: case SupportedImageFormat.Bmp: case SupportedImageFormat.Tiff: using (var code = new QRCode(data)) { using (var bitmap = code.GetGraphic(pixelsPerModule, foreground, background, true)) { var actualFormat = new OptionSetter().GetImageFormat(imgFormat.ToString()); bitmap.Save(outputFileName, actualFormat); } } break; case SupportedImageFormat.Svg: using (var code = new SvgQRCode(data)) { var test = code.GetGraphic(pixelsPerModule, foreground, background, true); using (var f = File.CreateText(outputFileName)) { f.Write(test); f.Flush(); } } break; case SupportedImageFormat.Xaml: using (var code = new XamlQRCode(data)) { var test = XamlWriter.Save(code.GetGraphic(pixelsPerModule, foreground, background, true)); using (var f = File.CreateText(outputFileName)) { f.Write(test); f.Flush(); } } break; default: throw new ArgumentOutOfRangeException(nameof(imgFormat), imgFormat, null); } } } }
public static void Main(string[] args) { var friendlyName = AppDomain.CurrentDomain.FriendlyName; var newLine = Environment.NewLine; var setter = new OptionSetter (); String fileName = null, outputFileName = null, payload = null; QRCodeGenerator.ECCLevel eccLevel = QRCodeGenerator.ECCLevel.L; ImageFormat imageFormat = ImageFormat.Png; var showHelp = false; var optionSet = new OptionSet { { "e|ecc-level=", "error correction level", value => eccLevel = setter.GetECCLevel(value) }, { "f|output-format=", "Image format for outputfile. Possible values: png, jpg, gif, bmp, tiff (default: png)", value => imageFormat = setter.GetImageFormat(value) }, { "i|in=", "input file | alternative to parameter -p", value => fileName = value }, { "p|payload=", "payload string | alternative to parameter -i", value => payload = value }, { "o|out=", "output file", value => outputFileName = value }, { "h|help", "show this message and exit.", value => showHelp = value != null } }; try { optionSet.Parse(args); if (showHelp) { ShowHelp(optionSet); } if (fileName != null) { var fileInfo = new FileInfo(fileName); if (fileInfo.Exists) { var text = GetTextFromFile(fileInfo); GenerateQRCode(text, eccLevel, outputFileName, imageFormat); } else { Console.WriteLine($"{friendlyName}: {fileName}: No such file or directory"); } } else if (payload != null) { GenerateQRCode(payload, eccLevel, outputFileName, imageFormat); } else { var stdin = Console.OpenStandardInput(); var text = GetTextFromStream(stdin); GenerateQRCode(text, eccLevel, outputFileName, imageFormat); } } catch (Exception oe) { Console.Error.WriteLine( $"{friendlyName}:{newLine}{oe.GetType().FullName}{newLine}{oe.Message}{newLine}{oe.StackTrace}{newLine}Try '{friendlyName} --help' for more information"); Environment.Exit(-1); } }
public static void Main(string[] args) { var friendlyName = AppDomain.CurrentDomain.FriendlyName; var newLine = Environment.NewLine; var setter = new OptionSetter(); String fileName = null, outputFileName = null, payload = null; QRCodeGenerator.ECCLevel eccLevel = QRCodeGenerator.ECCLevel.L; SupportedImageFormat imageFormat = SupportedImageFormat.Png; int pixelsPerModule = 20; string foregroundColor = "#000000"; string backgroundColor = "#FFFFFF"; var showHelp = false; var optionSet = new OptionSet { { "e|ecc-level=", "error correction level", value => eccLevel = setter.GetECCLevel(value) }, { "f|output-format=", "Image format for outputfile. Possible values: png, jpg, gif, bmp, tiff, svg (default: png)", value => { Enum.TryParse(value, true, out imageFormat); } }, { "i|in=", "input file | alternative to parameter -p", value => fileName = value }, { "p|payload=", "payload string | alternative to parameter -i", value => payload = value }, { "o|out=", "output file", value => outputFileName = value }, { "s|pixel=", "pixels per module", value => { if (int.TryParse(value, out pixelsPerModule)) { if (pixelsPerModule < 1) { pixelsPerModule = 20; } } else { pixelsPerModule = 20; } } }, { "l|background=", "background color", value => backgroundColor = value }, { "d|foreground=", "foreground color", value => foregroundColor = value }, { "h|help", "show this message and exit.", value => showHelp = value != null } }; try { optionSet.Parse(args); if (showHelp) { ShowHelp(optionSet); } string text = null; if (fileName != null) { var fileInfo = new FileInfo(fileName); if (fileInfo.Exists) { text = GetTextFromFile(fileInfo); } else { Console.WriteLine($"{friendlyName}: {fileName}: No such file or directory"); } } else if (payload != null) { text = payload; } else { var stdin = Console.OpenStandardInput(); text = GetTextFromStream(stdin); } if (text != null) { GenerateQRCode(payload, eccLevel, outputFileName, imageFormat, pixelsPerModule, foregroundColor, backgroundColor); } } catch (Exception oe) { Console.Error.WriteLine( $"{friendlyName}:{newLine}{oe.GetType().FullName}{newLine}{oe.Message}{newLine}{oe.StackTrace}{newLine}Try '{friendlyName} --help' for more information"); Environment.Exit(-1); } }
public static void Main(string[] args) { var friendlyName = AppDomain.CurrentDomain.FriendlyName; var newLine = Environment.NewLine; var setter = new OptionSetter(); String fileName = null, outputFileName = null, payload = null; QRCodeGenerator.ECCLevel eccLevel = QRCodeGenerator.ECCLevel.L; ImageFormat imageFormat = ImageFormat.Png; var showHelp = false; var optionSet = new OptionSet { { "e|ecc-level=", "error correction level", value => eccLevel = setter.GetECCLevel(value) }, { "f|output-format=", "Image format for outputfile. Possible values: png, jpg, gif, bmp, tiff (default: png)", value => imageFormat = setter.GetImageFormat(value) }, { "i|in=", "input file | alternative to parameter -p", value => fileName = value }, { "p|payload=", "payload string | alternative to parameter -i", value => payload = value }, { "o|out=", "output file", value => outputFileName = value }, { "h|help", "show this message and exit.", value => showHelp = value != null } }; try { optionSet.Parse(args); if (showHelp) { ShowHelp(optionSet); } if (fileName != null) { var fileInfo = new FileInfo(fileName); if (fileInfo.Exists) { var text = GetTextFromFile(fileInfo); GenerateQRCode(text, eccLevel, outputFileName, imageFormat); } else { Console.WriteLine($"{friendlyName}: {fileName}: No such file or directory"); } } else if (payload != null) { GenerateQRCode(payload, eccLevel, outputFileName, imageFormat); } else { var stdin = Console.OpenStandardInput(); var text = GetTextFromStream(stdin); GenerateQRCode(text, eccLevel, outputFileName, imageFormat); } } catch (Exception oe) { Console.Error.WriteLine( $"{friendlyName}:{newLine}{oe.GetType().FullName}{newLine}{oe.Message}{newLine}{oe.StackTrace}{newLine}Try '{friendlyName} --help' for more information"); Environment.Exit(-1); } }