Exemplo n.º 1
0
        /// <summary>
        /// 画像キャプチャとそこからのクリックオフセット位置を取得するダイアログ
        /// </summary>
        /// <param name="filepath"></param>
        /// <param name="offset"></param>
        private void ShowGetClickOffsetFromCapture(out string filepath, out System.Drawing.Point offset)
        {
            filepath = null;
            offset   = System.Drawing.Point.Empty;
            var screen = ImageCapture.BitmapFromScreen();

            // スクリーン範囲ドラッグ
            var cs          = new ScreenSelection();
            var captureRect = cs.ShowGetRectDialog(screen, "画像領域をドラッグしてください");

            if (captureRect.IsEmpty)
            {
                return;
            }

            // 指定範囲をファイルに保存
            filepath = ShowSaveFileDialog();
            if (filepath == null)
            {
                return;
            }
            Bitmap bmp = screen.Clone(captureRect, screen.PixelFormat);

            bmp.Save(filepath, ImageFormat.Bmp);

            // 相対クリック一取得
            cs = new ScreenSelection();
            var clickPoint = cs.ShowGetPointDialog(screen, "クリックする座標を指定してください");

            if (clickPoint.IsEmpty)
            {
                return;
            }

            // 画像の切り出し
            offset   = new System.Drawing.Point();
            offset.X = clickPoint.X - captureRect.X;
            offset.Y = clickPoint.Y - captureRect.Y;
        }
Exemplo n.º 2
0
        private void ShowGetClickPosDialog(out System.Drawing.Point pos)
        {
            var cs = new ScreenSelection();

            pos = cs.ShowGetPointDialog(ImageCapture.BitmapFromScreen(), "クリックする座標を指定してください");
        }