コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: yurikus/QRCoder
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }