Beispiel #1
0
 public RegionReturn(RegionResult result, bool capturedFullscreen, Image image)
 {
     Result = result;
     CapturedScreenBounds = capturedFullscreen;
     Region = ScreenHelper.GetScreenBounds();
     Image  = image;
 }
Beispiel #2
0
        public static void RegionCapture(RegionCaptureMode mode, bool creatClip = false)
        {
            using (RegionCaptureForm regionCapture = new RegionCaptureForm(ScreenHelper.GetScreenBounds(), mode))
            {
                regionCapture.ShowDialog();

                LastRegionResult?.Dispose();
                LastRegionResult = regionCapture.GetRsult();


                if (LastRegionResult.Result == RegionResult.Close)
                {
                    return;
                }

                if (LastRegionResult.Result == RegionResult.Color)
                {
                    if (SettingsManager.RegionCaptureSettings.Auto_Copy_Color)
                    {
                        ClipboardHelper.FormatCopyColor(SettingsManager.MiscSettings.Default_Color_Format, LastRegionResult.Color);
                    }
                    return;
                }

                if (SettingsManager.RegionCaptureSettings.Auto_Copy_Image)
                {
                    ClipboardHelper.CopyImage(LastRegionResult.Image);
                }

                string path = string.Empty;

                if (InternalSettings.Save_Images_To_Disk)
                {
                    path = PathHelper.GetNewImageFileName();
                }

                if (creatClip)
                {
                    ClipOptions ops = new ClipOptions(ScreenHelper.GetRectangle0Based(LastRegionResult.Region).Location);
                    ops.FilePath = path;
                    ClipManager.CreateClip(LastRegionResult.Image, ops);
                }

                if (InternalSettings.Save_Images_To_Disk)
                {
                    Save(path, LastRegionResult.Image);
                }

                if (LastRegionResult.Image != null)
                {
                    LastRegionResult.Image.Dispose();
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Captures the given rectangle on the screen.
        /// </summary>
        /// <param name="rect">The <see cref="Rectangle"/> to capture.</param>
        /// <returns>A <see cref="Bitmap"/> of the screen region.</returns>
        public static Bitmap CaptureRectangle(Rectangle rect)
        {
            Rectangle bounds = ScreenHelper.GetScreenBounds();

            rect = Rectangle.Intersect(bounds, rect);

            if (UseNativeCapture)
            {
                return(CaptureRectangleNative(IntPtr.Zero, rect, CaptureCursor));
            }

            return(ManagedRectAsImage(rect, CaptureCursor));
        }
Beispiel #4
0
        public static bool GetRegionResultColor(out COLOR color)
        {
            using (RegionCaptureForm regionCapture = new RegionCaptureForm(ScreenHelper.GetScreenBounds(), RegionCaptureMode.ColorPicker))
            {
                regionCapture.ShowDialog();
                LastRegionResult?.Dispose();
                LastRegionResult = regionCapture.GetRsult();

                if (LastRegionResult.Result == RegionResult.Close)
                {
                    color = Color.Empty;
                    return(false);
                }

                color = LastRegionResult.Color;
                return(true);
            }
        }
Beispiel #5
0
        public static bool GetRegionResultImage(out Image image)
        {
            using (RegionCaptureForm regionCapture = new RegionCaptureForm(ScreenHelper.GetScreenBounds(), RegionCaptureMode.Default))
            {
                regionCapture.ShowDialog();
                LastRegionResult?.Dispose();
                LastRegionResult = regionCapture.GetRsult();

                if (LastRegionResult.Result == RegionResult.Close || LastRegionResult.Image == null)
                {
                    image = null;
                    return(false);
                }

                image = LastRegionResult.Image.CloneSafe();
                return(true);
            }
        }
Beispiel #6
0
        /// <summary>
        /// Captures the entire screen.
        /// </summary>
        /// <returns>A <see cref="Bitmap"/> of the screen.</returns>
        public static Bitmap CaptureFullscreen()
        {
            Rectangle bounds = ScreenHelper.GetScreenBounds();

            return(CaptureRectangle(bounds));
        }
Beispiel #7
0
 public RegionCaptureForm() : this(ScreenHelper.GetScreenBounds(), SettingsManager.RegionCaptureSettings.Mode)
 {
 }