public void CreateNewScreenshot()
        {
            if (!GetIsSelectedRectangleValid())
            {
                Close();
                return;
            }

            // Only get the rectangle portion of the dekstop we want
            Bitmap croppedBitmap = BitmapService.CropBitmap(OriginalScreenBitmap, GetSelectedCaptureArea());

            // When creating the new Screenshot form, make sure to place it on the relevant part of the desktop
            var topLeftPoint = GetTopLeftPoint();

            // Apply offset
            var leftMostScreen   = Screen.AllScreens.OrderBy(s => s.Bounds.Left).First();
            var leftMostLocation = leftMostScreen.Bounds.Location;

            topLeftPoint.X += DesktopRectangle.X;
            topLeftPoint.Y += DesktopRectangle.Y;

            // TODO: Add Screenshots to groups (for grouped moving etc.)
            var screenshotModel     = new ScreenshotModel(croppedBitmap, topLeftPoint);
            var newScreenshotForm   = new ScreenshotView();
            var screenshotPresenter = new ScreenshotPresenter(newScreenshotForm, screenshotModel);

            newScreenshotForm.SetBitmap(croppedBitmap, topLeftPoint);
            newScreenshotForm.Show();

            Close();
        }
Ejemplo n.º 2
0
        private void UpdatePreviewBitmap()
        {
            // The preview bitmap is always at the location of the end click (this is where the pointer currently 'is')
            var previewWidth          = previewSize.Width / previewScale;
            var previewHeight         = previewSize.Height / previewScale;
            var lPreviewAreaRectangle = new Rectangle((int)(StopClickPoint.X - previewWidth / 2), (int)(StopClickPoint.Y - previewHeight / 2), (int)previewWidth, (int)previewHeight);

            previewBitmap = BitmapService.CropBitmap(originalDesktopCaptureBitmap, lPreviewAreaRectangle);
            previewBitmap.SetPixel((int)(previewWidth * 0.5f) + 1, (int)(previewHeight * 0.5f) + 1, Color.Red);
        }
Ejemplo n.º 3
0
        private void PaintCaptureArea(PaintEventArgs e)
        {
            // Get the selected rectangle area from the original (bright) bitmap
            Bitmap adjustedBitmap = BitmapService.CropBitmap(originalDesktopCaptureBitmap, SelectedArea);

            // if no cropping occured, default to the darker capture
            if (adjustedBitmap.Width == originalDesktopCaptureBitmap.Width && adjustedBitmap.Height == originalDesktopCaptureBitmap.Height)
            {
                adjustedBitmap = darkDesktopCaptureBitmap;
            }

            e.Graphics.DrawImage(adjustedBitmap, SelectedArea.X, SelectedArea.Y);
        }