Programming/c# & winform2020. 10. 30. 15:21

말이 이상하네 -ㅁ-

원본 이미지는 큰데 출력할 PictureBox는 작고

그 PictureBox 위에서 클릭 드래그 하면 사진이 움직이는 것을 구현하려고 한참을 고생했는데

결과물은 딸랑 두줄 -_-

 

        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button.HasFlag(MouseButtons.Left))
            {
                Bitmap bmp = global::testproject.Properties.Resources.septa_map;
                pictureBox2.CreateGraphics().DrawImage(bmp, new Point(e.X, e.Y));
            }
        }

[링크 : https://www.c-sharpcorner.com/.../how-to-make-image-editor-tool-in-C-Sharp-cropping-image/]

[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.mousebuttons?view=netcore-3.1]

 

 

+

중간에 아무생각 없이 new Bitmap 엄청했더니 OutOfMemory 에러를 보지 않나 난리 법석이었네

Posted by 구차니

댓글을 달아 주세요

  1. Zeliper

    혹시 해당코드로 빈공간에 마우스 왼클릭 누른채로 드래그하면 마우스 위치로 강제 이동 되지 않나요?
    일괄성을 위해 기존위치,사진크기 등을 이용해서 좌표연산을 하면 더 깔끔하게 동작할듯 합니다.

    2020.11.01 08:22 [ ADDR : EDIT/ DEL : REPLY ]
    • 클릭시 위치이기 때문에 그런 문제가 있죠 ^^;
      최소한의 구현을 위해서 저정도만 했고
      이제 앞으로 이전의 좌표와
      이미지의 크기로 경계를 계산하는걸 추가해야 하긴 합니다.

      2020.11.01 09:43 [ ADDR : EDIT/ DEL ]