示例#1
0
        public static void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = true)
        {
            switch (lastRegionCaptureType)
            {
            case LastRegionCaptureType.Default:
                if (RegionCaptureForm.LastRegionFillPath != null)
                {
                    DoCapture(() =>
                    {
                        using (Image screenshot = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen())
                        {
                            Image img = RegionCaptureTasks.ApplyRegionPathToImage(screenshot, RegionCaptureForm.LastRegionFillPath);
                            return(new ImageInfo(img));
                        }
                    }, CaptureType.LastRegion, taskSettings, autoHideForm);
                }
                else
                {
                    CaptureRegion(taskSettings, autoHideForm);
                }
                break;

            case LastRegionCaptureType.Light:
                if (!RegionCaptureLightForm.LastSelectionRectangle0Based.IsEmpty)
                {
                    DoCapture(() =>
                    {
                        using (Image screenshot = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen())
                        {
                            Image img = ImageHelpers.CropImage(screenshot, RegionCaptureLightForm.LastSelectionRectangle0Based);
                            return(new ImageInfo(img));
                        }
                    }, CaptureType.LastRegion, taskSettings, autoHideForm);
                }
                else
                {
                    CaptureRectangleLight(taskSettings, autoHideForm);
                }
                break;

            case LastRegionCaptureType.Transparent:
                if (!RegionCaptureTransparentForm.LastSelectionRectangle0Based.IsEmpty)
                {
                    DoCapture(() =>
                    {
                        using (Image screenshot = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen())
                        {
                            Image img = ImageHelpers.CropImage(screenshot, RegionCaptureTransparentForm.LastSelectionRectangle0Based);
                            return(new ImageInfo(img));
                        }
                    }, CaptureType.LastRegion, taskSettings, autoHideForm);
                }
                else
                {
                    CaptureRectangleTransparent(taskSettings, autoHideForm);
                }
                break;
            }
        }
示例#2
0
        protected override ImageInfo Execute(TaskSettings taskSettings)
        {
            switch (lastRegionCaptureType)
            {
            default:
            case RegionCaptureType.Default:
                if (RegionCaptureForm.LastRegionFillPath != null)
                {
                    using (Image screenshot = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen())
                    {
                        Image img = RegionCaptureTasks.ApplyRegionPathToImage(screenshot, RegionCaptureForm.LastRegionFillPath, out _);
                        return(new ImageInfo(img));
                    }
                }
                else
                {
                    return(ExecuteRegionCapture(taskSettings));
                }

            case RegionCaptureType.Light:
                if (!RegionCaptureLightForm.LastSelectionRectangle0Based.IsEmpty)
                {
                    using (Image screenshot = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen())
                    {
                        Image img = ImageHelpers.CropImage(screenshot, RegionCaptureLightForm.LastSelectionRectangle0Based);
                        return(new ImageInfo(img));
                    }
                }
                else
                {
                    return(ExecuteRegionCaptureLight(taskSettings));
                }

            case RegionCaptureType.Transparent:
                if (!RegionCaptureTransparentForm.LastSelectionRectangle0Based.IsEmpty)
                {
                    using (Image screenshot = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen())
                    {
                        Image img = ImageHelpers.CropImage(screenshot, RegionCaptureTransparentForm.LastSelectionRectangle0Based);
                        return(new ImageInfo(img));
                    }
                }
                else
                {
                    return(ExecuteRegionCaptureTransparent(taskSettings));
                }
            }
        }