program.cs

来自「DataMatrix二维条码识别算法,基于Windows」· CS 代码 · 共 125 行

CS
125
字号
using System;
using System.Collections.Generic;
using System.Text;
using IEC16022Sharp;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;


namespace TestApp
{
    class Program
    {

        static void Main(string[] args)
        {

            // Simple test
            SimpleDataMatrix();
            ResizeDataMatrix();
            BigDataMatrix();

            // Important: for a real speed test, run the test outside Visul Studio
            SpeedTest(0);
            SpeedTest(1);
            SpeedTest(2);

            // FastBmp
            FastBmpOne();
            FastBmpTwo();
            
            // Multithread
            MultiThreadTest.Exec();

            // "self test"
            Test_ReedSol.Exec();

            // A known issue
            KnownIssue.Exec();


            Console.WriteLine("***END***");
            Console.WriteLine("Press a key to exit");
            Console.ReadKey();
        }



        private static void SimpleDataMatrix()
        {
            string outFileName = "simple.png";
            DataMatrix dm = new DataMatrix("Sabry and Ely");
            dm.Image.Save(outFileName, ImageFormat.Png);
            Console.WriteLine("DataMatrix: {0} W:{1} H:{2} ", outFileName, dm.W, dm.H);
        }


        private static void ResizeDataMatrix()
        {
            string outFileName = "resize.png";
            DataMatrix dm = new DataMatrix("Sabry and Ely");
            DMImgUtility.SimpleResizeBmp(dm.Image, 10, 50).Save(outFileName, ImageFormat.Png);
            Console.WriteLine("DataMatrix: {0} W:{1} H:{2} ", outFileName, dm.W, dm.H);
        }


        private static void BigDataMatrix()
        {
            string outFileName = "big.png";
            DataMatrix dm = new DataMatrix(
                "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + 
                "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua");
            DMImgUtility.SimpleResizeBmp(dm.Image, 10, 50).Save(outFileName, ImageFormat.Png);
            Console.WriteLine("DataMatrix: {0} W:{1} H:{2} ", outFileName, dm.W, dm.H);
        }


        private static void SpeedTest(int mode)
        {
            int matrixNum = 1000;
            DateTime tstart = DateTime.Now;
            for (int i = 0; i < matrixNum; i++)
            {
                DataMatrix dm = null;

                switch (mode)
                {
                    case 0: dm = new DataMatrix("This is a test - IEC16022Sharp"); break;
                    case 1: dm = new DataMatrix("This is a test - IEC16022Sharp", EncodingType.Ascii); break;
                    case 2: dm = new DataMatrix("This is a test - IEC16022Sharp", 22, 22, EncodingType.Ascii); break;
                }
                MemoryStream ms = new MemoryStream();
                dm.Image.Save(ms, ImageFormat.Bmp);
            }
            double elapsedTime = DateTime.Now.Subtract(tstart).TotalSeconds;
            Console.WriteLine("SpeedTest mode [{0}] : {1} matrix - {2} matrix/sec", mode, matrixNum, (matrixNum / elapsedTime).ToString(".00"));
        }



        private static void FastBmpOne()
        {
            DataMatrix dm = new DataMatrix("Sabry and Ely", 16, 16);
            dm.FastBmp.Save("fastbmp.bmp");
            Console.WriteLine("FastBmpOne: fastbmp.bmp");
        }


        private static void FastBmpTwo()
        {
            int matrixNum = 10000;
            DateTime tstart = DateTime.Now;
            for (int i = 0; i < matrixNum; i++)
            {
                DataMatrix dm = new DataMatrix("This is a test - IEC16022Sharp", 22, 22, EncodingType.Ascii); 
                MemoryStream ms = new MemoryStream();
                dm.FastBmp.Save(ms);
            }
            double elapsedTime = DateTime.Now.Subtract(tstart).TotalSeconds;
            Console.WriteLine("SpeedTest FastBmp: {0} matrix/sec", (matrixNum / elapsedTime).ToString(".00"));
        }

    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?