성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] How can I tell whether two programs...
[정성태] The case of the fail-fast crashes c...
[정성태] Creating Docker multi-arch images f...
[정성태] BinaryFormatter removed from .NET 9...
[정성태] Extending the Windows Shell Progres...
[우광현] 와..... 범위를 잡았으니 클라이언트가 해당 범위를 확인해본다...
[정성태] 딱히, 그것 이상으로 더 설명할 내용이 없습니다. 동적 포...
[정성태] If Windows 3.11 required a 32-bit p...
[정성태] What is a hard error, and what make...
[괴물신인] 질문작성자인데 이 글을 이제봤네요 ㄷㄷ 이 글처럼 타입별로 인...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>C# - AForge.NET을 이용한 웹캠 영상 출력</h1> <p> 주간닷넷에 AForge.NET이 소개되었군요. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 주간닷넷 2016년 8월 2일 - AForge.NET ; <a target='tab' href='https://blogs.msdn.microsoft.com/eva/?p=11715'>https://blogs.msdn.microsoft.com/eva/?p=11715</a> AForge.NET Framework 2.2.5 is now available ; <a target='tab' href='http://www.aforgenet.com/news/2013.07.17.releasing_framework_2.2.5.html'>http://www.aforgenet.com/news/2013.07.17.releasing_framework_2.2.5.html</a> </pre> <br /> 보니까, 재미있는 기능들이 많이 있습니다. 그중에서 오늘의 제목에 걸맞게 VideoCaptureDevice 타입의 간단한 사용법을 보겠습니다.<br /> <br /> <pre style='margin: 10px px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > VideoCaptureDevice Class ; <a target='tab' href='http://www.aforgenet.com/framework/docs/html/f4d3c2ba-605c-f066-f969-68260ce5e141.htm'>http://www.aforgenet.com/framework/docs/html/f4d3c2ba-605c-f066-f969-68260ce5e141.htm</a> </pre> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> This video source class captures video data <span style='color: blue; font-weight: bold'>from local video capture device, like USB web camera (or internal), frame grabber, capture board - anything which supports DirectShow interface</span>. For devices which has a shutter button or support external software triggering, the class also allows to do snapshots. Both video size and snapshot size can be configured. </div><br /> <br /> NuGet 덕분에 설치도 간단하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > AForge.Video.DirectShow 2.2.5 ; <a target='tab' href='https://www.nuget.org/packages/AForge.Video.DirectShow/'>https://www.nuget.org/packages/AForge.Video.DirectShow/</a> </pre> <br /> <pre style='margin: 10px0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > PM> Install-Package AForge.Video.DirectShow </pre> <br /> 도움말이 잘 되어 있어 사용법도 간단합니다.<br /> <br /> <pre style='argin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Access to USB cameras and video files using DirectShow ; <a target='tab' href='http://www.aforgenet.com/framework/features/directshow_video.html'>http://www.aforgenet.com/framework/features/directshow_video.html</a> </pre> <br /> 따라서, WinForm 용 예제 코드를 이렇게 쉽게 작성할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > using System; using System.Drawing; using System.Windows.Forms; using AForge.Video; using AForge.Video.DirectShow; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } FilterInfoCollection _videoDevices; private void Form1_Load(object sender, EventArgs e) { _videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (_videoDevices.Count == 0) { button1.Enabled = false; MessageBox.Show("NO video input device"); return; } } private void video_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap bitmap = eventArgs.Frame; this.Invoke((Action)(() => { pictureBox1.Image = (Bitmap)bitmap.Clone(); }), null); } VideoCaptureDevice _videoSource; private void button1_Click(object sender, EventArgs e) { if (button1.Text == "Start") { _videoSource = new VideoCaptureDevice(_videoDevices[0].MonikerString); _videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame); _videoSource.Start(); button1.Text = "Stop"; } else { _videoSource.SignalToStop(); button1.Text = "Start"; } } } } </pre> <br /> 다음은, 카메라가 설치된 제 노트북에서 실행한 화면입니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='video_capture_aforge_1.PNG' src='/SysWebRes/bbs/video_capture_aforge_1.PNG' /><br /> <br /> (<a target='tab' href='https://www.sysnet.pe.kr/bbs/DownloadAttachment.aspx?fid=1072&boardid=331301885'>첨부 파일은 이 글의 예제 코드를 포함</a>합니다.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> AForge.NET에 아쉬운 점이 있다면, 2013년의 2.2.5 버전 이후로 업데이트가 중단된 듯하다는 것입니다. 일부 그 명맥을 GitHub에서 개인 자격으로 이어가고는 있으나... 글쎄요...<br /> <br /> 암튼, 적어도 윈도우 10 환경까지는 무난하게 사용할 수 있습니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
2140
(왼쪽의 숫자를 입력해야 합니다.)