private static void TestMosaicEnDecoder() { string fileName = "encodedMosaicImg.png"; DmtxImageEncoder encoder = new DmtxImageEncoder(); DmtxImageEncoderOptions options = new DmtxImageEncoderOptions(); options.ModuleSize = 8; options.MarginSize = 4; Bitmap encodedBitmap = encoder.EncodeImageMosaic(testVal); encodedBitmap.Save(fileName, ImageFormat.Png); DmtxImageDecoder decoder = new DmtxImageDecoder(); List <string> codes = decoder.DecodeImageMosaic((Bitmap)Bitmap.FromFile(fileName), 1, new TimeSpan(0, 0, 3)); foreach (string code in codes) { Console.WriteLine("Decoded:\n" + code); } Console.Read(); }
static void Main(string[] args) { if (args.Length == 0 || (args.Length == 1 && IsHelp(args[0]))) { ShowHelp(); return; } SortedDictionary <string, string> argumentList = null; try { argumentList = ParseArguments(args); } catch (Exception) { Console.WriteLine("Error parsing arguments, aborting"); } DmtxImageEncoderOptions encoderOptions = null; try { encoderOptions = GetEncoderOptions(argumentList); } catch (Exception) { Console.WriteLine("Invalid arguments, aborting"); } string input = ""; try { input = GetInputString(argumentList); } catch (Exception) { Console.WriteLine("Invalid input, aborting"); return; } if (!argumentList.ContainsKey("-o")) { Console.WriteLine("No output file specified, aborting"); return; } string outputFileName = argumentList["-o"]; if (!outputFileName.ToLower().EndsWith(".jpg") && !outputFileName.ToLower().EndsWith(".gif") && !outputFileName.ToLower().EndsWith(".png") && !outputFileName.ToLower().EndsWith(".bmp") && !outputFileName.ToLower().EndsWith(".svg")) { Console.WriteLine("File type not supported!"); return; } DmtxImageEncoder encoder = new DmtxImageEncoder(); if (outputFileName.ToLower().EndsWith(".svg")) { string output = encoder.EncodeSvgImage(input, encoderOptions); try { TextWriter tw = new StreamWriter(outputFileName); tw.Write(output); tw.Close(); Console.WriteLine("Output created successfully!"); return; } catch (Exception ex) { Console.WriteLine("Error writing to output file: " + ex.Message); return; } } Image outputImage = null; if (argumentList.ContainsKey("-t") && argumentList["-t"] == "Mosaic") { encoderOptions.BackColor = Color.White; encoderOptions.ForeColor = Color.Black; outputImage = encoder.EncodeImageMosaic(input, encoderOptions); } else if (!argumentList.ContainsKey("-t") || (argumentList.ContainsKey("-t") && argumentList["-t"] == "Matrix")) { outputImage = encoder.EncodeImage(input, encoderOptions); } else { Console.WriteLine("Invalid output type, only 'Matrix' and 'Mosaic' are supported!"); return; } try { outputImage.Save(outputFileName); Console.WriteLine("Output created successfully!"); } catch (Exception ex) { Console.WriteLine("Error writing to output file: " + ex.Message); return; } }