public override double DecodeInRgb(List <byte[]> JList, bool debugInfoIsOn = false)
        {
            Console.WriteLine();
            Console.WriteLine("Converting by OpenCV to BMP..");

            double avgtime = 0;
            double delta;
            int    i = 0;

            foreach (byte[] imgByte in JList)
            {
                Emgu.CV.Util.VectorOfByte output = new Emgu.CV.Util.VectorOfByte();

                Mat convertedImg = new Mat();

                DateTime start = DateTime.Now;

                //CvInvoke.Imencode(".bmp", imgToConvert, output);
                CvInvoke.Imdecode(imgByte, LoadImageType.Unchanged, convertedImg);

                DateTime finish = DateTime.Now;

                delta = (finish - start).TotalMilliseconds;
                try
                {
                    using (FileStream file = new FileStream("output\\OpenCV" + i.ToString() + ".bmp", FileMode.Create, System.IO.FileAccess.Write))
                    {
                        file.Write(output.ToArray(), 0, output.ToArray().Length);

                        avgtime += delta;

                        if (debugInfoIsOn)
                        {
                            Console.WriteLine("Done converting image {0}. Size: {1}. Time: {2}", i, "---", delta);
                        }
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine(exc);
                    return(0);
                }

                i++;
            }

            Console.WriteLine("..done.");

            return(avgtime);
        }
        public override double Encode(List <byte[]> JList, object CompressionQuality, bool debugInfoIsOn = false)
        {
            Console.WriteLine();
            Console.WriteLine("Converting by OpenCV to JPG..");

            double avgtime = 0;
            double delta;
            int    i = 0;

            foreach (byte[] imgByte in JList)
            {
                Emgu.CV.Util.VectorOfByte output = new Emgu.CV.Util.VectorOfByte();

                Mat imgToConvert = new Image <Bgr, byte>(new Bitmap(new MemoryStream(imgByte))).Mat;

                DateTime start = DateTime.Now;

                CvInvoke.Imencode(".jpg", imgToConvert, output, new int[] { Convert.ToInt32(CompressionQuality) });

                DateTime finish = DateTime.Now;

                delta = (finish - start).TotalMilliseconds;

                using (FileStream file = new FileStream("output\\OpenCV" + i.ToString() + ".jpeg", FileMode.Create, System.IO.FileAccess.Write))
                {
                    file.Write(output.ToArray(), 0, output.ToArray().Length);
                }

                avgtime += delta;

                if (debugInfoIsOn)
                {
                    Console.WriteLine("Done converting image {0}. Size: {1}. Time: {2}", i, "---", delta);
                }

                i++;
            }

            Console.WriteLine("..done.");
            return(avgtime);
        }