2011-12-08 2 views
2

dPanel이라는 패널이 있습니다. 이 패널의 backgroundImage를 dImage라는 이미지로 설정했습니다. 이제 패널에 점을 그려야합니다. 즉, 마우스를 사용하여 패널의 색상을 지정하고 싶습니다. 그림과 이미지를 함께 저장할 수 있기를 원합니다. 후에. 내 코드는이 작업을 수행하지만, 그림 그리기와 매우 slow.Here 내 코드입니다 동안 점등 :이미지가있는 패널에 점을 그리는 방법

private void drawP_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (!drawbool) 
     { 
      dStartPoint = e.Location; 
      drawbool = true; 
     } 
     drawP.Invalidate(); 
    } 
private void drawP_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (drawbool) 
     { 
      dStartPoint = e.Location; 
      drawP.Invalidate(); 
     } 
    } 
private void drawP_MouseUp(object sender, MouseEventArgs e) 
    { 
     if (drawbool) 
     { 
      drawbool = false; 
     } 
    } 
    private void drawP_Paint_1(object sender, PaintEventArgs e) 
    { 
     if (drawbool) 
     { 
      int dStartX = dStartPoint.X; 
      int dStartY = dStartPoint.Y; 
      e.Graphics.DrawEllipse(dP, dStartX, dStartY, 2, 2); 
      Bitmap dPPB = new Bitmap(drawP.Width, drawP.Height); 
      drawP.DrawToBitmap(dPPB, new Rectangle(0, 0, drawP.Width, drawP.Height)); 
      drawP.BackgroundImage = (Image)dPPB; 
     } 
    } 

Whani 솔루션입니까? 미리 감사드립니다.

+0

좋아, 사각형, 원형 ​​등의 도형을 그려야하는 방법이나 이미지에 단 하나의 도트를 넣는 방법은 무엇입니까? –

+0

패널에서 마우스를 드래그하여 세분 점을 그리려합니다. –

+0

아니요, 먼저 WinForms에서 그리기에 대한 명확한 아이디어를 얻으십시오. C#으로 winforms에 드래깅하여 선을 그릴 수 있지만 점은 사용할 수 없습니다. 드레이킹으로 어떻게 점들을 그릴 수 있습니까? –

답변

1

패널 드로잉에 대한 훌륭한 예를 확인하십시오 : Painting on a Panel.

나중에 패널의 메소드 DrawToBitmap을 호출하여 도면을 저장할 수 있습니다.

+0

이 기사는 많은 도움이되었습니다. 제공된 모든 코드를 사용했습니다. 감사합니다. 많이 –

관련 문제