Skip to content

LucioSong/ImageViewerSample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImageViewerSample

.net Framework 4.8 기반에 Image viewer User control입니다. ImageViewport를 생성하여 Panel과 같은 Controls에 Add 한 후 사용하는 방식으로 되어 있습니다. 이 Control의 사용 범위는 이미지 file의 Viewer / Camera 이미지 Viewer에 쓰일 수 있습니다. 좀 더 응용할 수 있는 방법이 있다면 https://luciodev.tistory.com/12 블로그에 댓글이나 방명록에 남겨주시면 적극 반영하도록 하겠습니다.

image

  • Update 내용 OpenCV Video capture 추가 적용

    image

  • Summary 코드

ImageViewport _imageViewportControl = null;

public Form1()
{
    InitializeComponent();

    _imageViewportControl = new ImageViewport();
}

private void Form1_Load(object sender, EventArgs e)
{
    _imageViewportControl.DrawOverlayViewportEvent += OnDrawOverlayViewport;
    _imageViewportControl.ViewportMouseDown += _imageViewportControl_ViewportMouseDown;
    _imageViewportControl.ViewportMouseUp += _imageViewportControl_ViewportMouseUp;
    _imageViewportControl.ViewportMouseMove += _imageViewportControl_ViewportMouseMove;
    _imageViewportControl.Dock = DockStyle.Fill;
    splitContainer1.Panel2.Controls.Add(_imageViewportControl);

    propertyGrid1.SelectedObject = _imageViewportControl;


    _formOpenCVControl = new FormOpenCVControl();
    _formOpenCVControl.CapturedFrame += _formOpenCVControl_CapturedFrame;
}

private void _formOpenCVControl_CapturedFrame(object sender, Bitmap frame)
{
    _imageViewportControl.UpdateImage(frame);
    _imageViewportControl.Invalidate_ImageViewport();
}

private void OnDrawOverlayViewport(object sender, EventArgs e)
{
    if (checkBox_drawoverlay_line.Checked)
    {
        _imageViewportControl.Drawoverlay_SetColorLine(Color.White);
        _imageViewportControl.DrawoverlayWorld_DrawLine(0, 0, 10, 10);
        _imageViewportControl.Drawoverlay_SetColorLine(Color.YellowGreen);
        _imageViewportControl.DrawoverlayWorld_DrawLine(0, 10, 10, 0);

        _imageViewportControl.Drawoverlay_SetColorLine(Color.YellowGreen);
        _imageViewportControl.DrawoverlayScreen_DrawLine(0, 0, 30, 30);
        _imageViewportControl.Drawoverlay_SetColorLine(Color.White);
        _imageViewportControl.DrawoverlayScreen_DrawLine(0, 30, 30, 0);
    }

    if (checkBox_text.Checked)
    {
        _imageViewportControl.DrawoverlayWorldPosition_DrawText(0, 30, textBox_text.Text, Font, Color.White, Color.Black, (float)1.0);
    }

    if (checkBox_drawoverlay_rectangle.Checked)
    {
        _imageViewportControl.Drawoverlay_SetColorLine(Color.Yellow);
        _imageViewportControl.DrawoverlayWorld_DrawRectangle(0, 0, 30, 30, 0);
    }

    if (checkBox_drawoverlay_ellipse.Checked)
    {
        _imageViewportControl.Drawoverlay_SetColorLine(Color.LightGreen);
        _imageViewportControl.DrawoverlayWorld_DrawEllipse(20, 15, 20, 15, 0);
    }
}

About

Based on .netFramework 4.8 ImageViewerControl

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages