Ejemplo n.º 1
0
        protected override void OnPaint(PaintEventArgs e)
        {
            mousePos      = ScreenHelper.ScreenToClient(ScreenHelper.GetCursorPosition());
            activeMonitor = ScreenHelper.GetActiveScreenBounds0Based();

            Graphics g = e.Graphics;

            g.PixelOffsetMode    = PixelOffsetMode.HighSpeed;
            g.InterpolationMode  = InterpolationMode.NearestNeighbor;
            g.SmoothingMode      = SmoothingMode.HighQuality; // for some reason highspeed crashes the window
            g.CompositingQuality = CompositingQuality.HighSpeed;

            g.CompositingMode = CompositingMode.SourceCopy;
            g.FillRectangle(backgroundBrush, clientArea);
            g.CompositingMode = CompositingMode.SourceOver;

            DrawMouseGraphics(g);

            if (SettingsManager.RegionCaptureSettings.Draw_Marching_Ants)
            {
                borderDotPen.DashOffset += 0.25f;
                if (borderDotPen.DashOffset > 10)
                {
                    borderDotPen.DashOffset = 0;
                }
                Invalidate();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the RegionCaptureInfo for the given region capture.
        /// </summary>
        /// <returns> The image/color captured and other info.</returns>
        public RegionReturn GetRsult()
        {
            if (result == RegionResult.Region)
            {
                if (leftClickStart.X < leftClickStop.X)
                {
                    leftClickStop = new Point(leftClickStop.X + 1, leftClickStop.Y);
                }
                else
                {
                    leftClickStop = new Point(leftClickStop.X - 1, leftClickStop.Y);
                }

                if (leftClickStart.Y < leftClickStop.Y)
                {
                    leftClickStop = new Point(leftClickStop.X, leftClickStop.Y + 1);
                }
                else
                {
                    leftClickStop = new Point(leftClickStop.X, leftClickStop.Y - 1);
                }
            }

            switch (result)
            {
            case RegionResult.Close:
                return(new RegionReturn(RegionResult.Close));

            case RegionResult.Region:
                return(new RegionReturn(
                           RegionResult.Region,
                           PointToScreen(leftClickStart),
                           PointToScreen(leftClickStop),
                           Helper.CreateRect(leftClickStart, leftClickStop),
                           ImageProcessor.GetCroppedBitmap(leftClickStart, leftClickStop, image, PixelFormat.Format24bppRgb)));

            case RegionResult.LastRegion:
                return(new RegionReturn(
                           RegionResult.LastRegion,
                           LastRegionReturn.StartLeftClick,
                           LastRegionReturn.StopLeftClick,
                           LastRegionReturn.Region,
                           ImageProcessor.GetCroppedBitmap(LastRegionReturn.Region, image, PixelFormat.Format24bppRgb)));

            case RegionResult.Fullscreen:
                return(new RegionReturn(RegionResult.Fullscreen, true, image));

            case RegionResult.ActiveMonitor:
                return(new RegionReturn(
                           Screen.FromPoint(ScreenHelper.GetCursorPosition()),
                           ImageProcessor.GetCroppedBitmap(ScreenHelper.GetActiveScreenBounds0Based(), image, PixelFormat.Format24bppRgb)));

            case RegionResult.Color:
                return(new RegionReturn(
                           PointToScreen(leftClickStop),
                           image.GetPixel(leftClickStop.X, leftClickStop.Y)));
            }
            return(null);
        }