private Bitmap CutImage(RelativeRectangle relativeRectangle, int differenceX = 0, int differenceY = 0)
        {
            // TODO 差分でキャプチャいめえーじからはみ出すとエラー

            // キャプチャ範囲
            var captureWindowModel = ModelConnector.CaptureWindow;

            // 画像キャプチャ
            Bitmap captureBitmap = ScreenCaptureModel.ScreenCapture(
                captureWindowModel.X,
                captureWindowModel.Y,
                captureWindowModel.Width,
                captureWindowModel.Height);

            // 切り抜く範囲
            Rectangle cutRect = new Rectangle(
                (int)(captureWindowModel.Width * relativeRectangle.X),
                (int)(captureWindowModel.Height * relativeRectangle.Y),
                (int)(captureWindowModel.Width * relativeRectangle.Width),
                (int)(captureWindowModel.Height * relativeRectangle.Height)
                );

            Bitmap cutBitmap = captureBitmap.Clone(cutRect, captureBitmap.PixelFormat);

            return(cutBitmap);
        }
Ejemplo n.º 2
0
        public void CreatePokemonMarkedCaptureImage()
        {
            var captureWindowModel                  = ModelConnector.CaptureWindow;
            var myCaptureImageManegementModel       = ModelConnector.MyCaptureImageManegement;
            var opponentCaptureImageManegementModel = ModelConnector.OpponentCaptureImageManegement;

            // キャプチャ範囲
            var captureRect = new Rectangle(captureWindowModel.X, captureWindowModel.Y, captureWindowModel.Width, captureWindowModel.Height);

            // アイコン部分を囲む矩形リストを作成
            List <Rectangle> iconSurroundRects = new List <Rectangle>();

            iconSurroundRects.AddRange(CreateIconSurroundRects(captureRect, myCaptureImageManegementModel));
            iconSurroundRects.AddRange(CreateIconSurroundRects(captureRect, opponentCaptureImageManegementModel));

            // スクリーンキャプチャ
            var captureImage = ScreenCaptureModel.ScreenCapture(captureRect);

            //ImageオブジェクトのGraphicsオブジェクトを作成する
            using (Graphics g = Graphics.FromImage(captureImage))
            {
                // ペン
                using (Pen p = new Pen(Color.Red, 3))
                {
                    foreach (Rectangle iconSurroundRect in iconSurroundRects)
                    {
                        g.DrawRectangle(p, iconSurroundRect);
                    }
                }
            }

            PokemonMarkedCaptureImage = BitmapConverterModel.ToBitmapImage(captureImage);
        }