2012-09-26 3 views
3

나는 인체의 한 그림을 보여 주었고 모양을 사용하여 환자의 상처를 찾고 싶습니다. 사용자가 버튼을 클릭하면 모든 모양이 표시됩니다. 지금은 단 하나의 모양으로 테스트하고 있습니다.이미지 앞에 모양을 놓고 #

여기 내 코드입니다.

private void button7_Click_4(object sender, EventArgs e) 
    { 
     Graphics g = this.CreateGraphics(); 
     g.Clear(this.BackColor); 

     Image img = Image.FromFile("C:\\Users\\HDAdmin\\Pictures\\humanbody\\effect2.png"); 
     g.DrawImage(img, 0, 0, img.Height, img.Width); 
     g.Dispose(); 
    } 

지금 바로 모양이 이미지의 뒷면에 나타납니다. 그래서 내가 그림을 그림 앞에 나타나게하고 싶습니까? 문제의

enter image description here

+0

나는 당신이 그 다음, 첫번째 이미지를 도형을 그리는 것 같아요. 모양을 그리는 데 사용하는 코드를 표시 할 수 있습니까? – 3aw5TZetdf

답변

4

커플.

1) 페인팅은 페인트 이벤트에서 발생해야합니다. CreateGraphics는 임시 드로잉 일 뿐이므로 사용하지 마십시오.

2) DrawImage 너비와 높이 인수가 반대입니다.

3) 양식에있는 PictureBox 컨트롤 그림있는 것처럼 그것은 보이지 않는 :

private Image img; 

public Form1() { 
    InitializeComponent(); 
    button1.Click += button1_Click; 
    pictureBox1.Paint += pictureBox1_Paint; 
} 

void button1_Click(object sender, EventArgs e) { 
    img = = Image.FromFile("C:\\Users\\HDAdmin\\Pictures\\humanbody\\effect2.png"); 
    pictureBox1.Invalidate(); 
} 

void pictureBox1_Paint(object sender, PaintEventArgs e) { 
    e.Graphics.Clear(pictureBox1.BackColor); 

    if (img != null) { 
    e.Graphics.DrawImage(img, 0, 0, img.Width, img.Height); 

    //Draw test shape: 
    e.Graphics.DrawRectangle(Pens.Red, new Rectangle(10, 10, 20, 60)); 
    } 
} 
+0

나는 내 코드를 복사하여 붙여 넣습니다. 그것은 그림의 뒤쪽에 여전히 모양을 나타냅니다. 나는 실수를합니까? –

+0

@sarabrown 작동하지 않으면 볼 수없는 코드가 실행 중입니다. 한가지 눈에 띄는 점은 코드가 폼 자체에 드로잉되는 것인데, 여기에는 분명히 버튼이 있습니다. 일반적으로이 이미지를 표시 할 Panel 또는 PictureBox 컨트롤이 있어야합니다. – LarsTech

+0

메신저 도구 상자의 구성 요소를 사용하여 구성 요소를 원하는 위치로 드래그합니다. 사진은 그림 상자에 있으며 패널에 넣어집니다. 나는 또한 더 나은 전망을 위해 나의 포스트를 편집한다. 도움이되기를 바랍니다. –

0

내가 먼저 인간 이미지의 그래픽을 얻고 다음에 모양 이미지를 그릴해야한다고 생각합니다. 그런 어떤 것을 :

Image img = Image.FromFile("C:\\Users\\HDAdmin\\Pictures\\humanbody\\effect2.png"); 

Graphics g = Graphics.FromImage (img); 

g.DrawImage(ShapeImage, 0, 0, 30, 30); // you can set your required x,y,width,height 
+0

잘 작동하지 않습니다. 그림 뒤쪽에 나타납니다. 다른 솔루션을 가지고 있거나 잘못된 방법으로 그것을하고있는 중입니까? –

관련 문제