private Image PrepareBevel(Image image, Point[] points, int filterValue)
        {
            Bitmap       bmp = new Bitmap(image.Width, image.Height);
            Graphics     g   = Graphics.FromImage(bmp);
            GraphicsPath gp  = new GraphicsPath();

            gp.AddPolygon(points);
            g.Clear(Color.Transparent);
            g.SetClip(gp);
            g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height));
            g.Dispose();
            ColorMatrix cm;

            switch (Config.BevelFilterType)
            {
            default:
            case FilterType.Brightness:
                cm = ColorMatrices.BrightnessFilter(filterValue);
                break;

            case FilterType.Contrast:
                cm = ColorMatrices.ContrastFilter(filterValue);
                break;

            case FilterType.Saturation:
                cm = ColorMatrices.SaturationFilter(filterValue);
                break;
            }
            bmp = ColorMatrices.ApplyColorMatrix(bmp, cm);
            Graphics g2 = Graphics.FromImage(image);

            g2.DrawImage(bmp, new Rectangle(0, 0, image.Width, image.Height));
            g2.Dispose();
            return(image);
        }
        public static Bitmap GetRandomLogo(Bitmap logo)
        {
            Bitmap bmp = new Bitmap(logo);

            if (mLogoRandomList.Count == 0)
            {
                List <int> numbers = Enumerable.Range(1, 7).ToList();

                int count = numbers.Count;

                for (int x = 0; x < count; x++)
                {
                    int r = ZAppHelper.Random.Next(0, numbers.Count - 1);
                    mLogoRandomList.Add(numbers[r]);
                    numbers.RemoveAt(r);
                }
            }

            switch (mLogoRandomList[0])
            {
            case 1:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.InverseFilter());
                break;

            case 2:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.GrayscaleFilter());
                break;

            case 3:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.GrayscaleFilter());
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.InverseFilter());
                break;

            case 4:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.InverseFilter());
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.SaturationFilter(ZAppHelper.Random.Next(100, 300)));
                break;

            case 5:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.InverseFilter());
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.SaturationFilter(ZAppHelper.Random.Next(-300, -100)));
                break;

            case 6:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.SaturationFilter(ZAppHelper.Random.Next(150, 300)));
                break;

            case 7:
                logo = ColorMatrices.ApplyColorMatrix(bmp, ColorMatrices.SaturationFilter(ZAppHelper.Random.Next(-300, -150)));
                break;
            }

            mLogoRandomList.RemoveAt(0);

            return(logo);
        }