Пример #1
0
        private Bitmap GetCompositeImage(long currentTime)
        {
            Bitmap composite;

            GotoTime(leftPlayer, currentTime);
            GotoTime(rightPlayer, currentTime);

            Bitmap img1 = leftPlayer.GetFlushedImage();

            if (!merging)
            {
                Bitmap img2 = rightPlayer.GetFlushedImage();
                composite = ImageHelper.GetSideBySideComposite(img1, img2, true, true);
                img2.Dispose();
            }
            else
            {
                int height = img1.Height;

                if (img1.Height % 2 != 0)
                {
                    height++;
                }

                composite = new Bitmap(img1.Width, height, img1.PixelFormat);
                Graphics g = Graphics.FromImage(composite);
                g.DrawImage(img1, Point.Empty);
            }

            img1.Dispose();

            return(composite);
        }
Пример #2
0
        public static void Save(PlayerScreen leftPlayer, PlayerScreen rightPlayer, bool merging)
        {
            string filename = GetFilename(leftPlayer, rightPlayer);

            if (string.IsNullOrEmpty(filename))
            {
                return;
            }

            Bitmap composite;

            Bitmap leftImage = leftPlayer.GetFlushedImage();

            if (!merging)
            {
                Bitmap rightImage = rightPlayer.GetFlushedImage();
                composite = ImageHelper.GetSideBySideComposite(leftImage, rightImage, false, true);
                rightImage.Dispose();
            }
            else
            {
                composite = leftImage;
            }

            ImageHelper.Save(filename, composite);

            composite.Dispose();

            NotificationCenter.RaiseRefreshFileExplorer(null, false);
        }