독개

[Avlaonia] 전체화면 캡쳐 , 화면해상도 구하기

by #독개#

화면해상도

 

MainWindow: Window

아발로니아 MainWindow에서 상속받는 Window가 가장탑레벨 내컴퓨터의 윈도우라 보면된다

 

ViewModel은 ViewModelBase를 상속받고 있으므로 Window정보를 가져올때 인스턴스를 하나 만들면된다

OpenCv의 Window와 모호하므로 Avalonia.Controls.Window라고 Specific하게 해주었다

 

 

Avalonia.Controls.Window a = new Avalonia.Controls.Window();
int width = a.Screens.Primary.Bounds.Width; //내윈도우 가로
int height = a.Screens.Primary.Bounds.Height; //내윈도우 세로
int c = Screens.ScreenCount; //내윈도우 화면갯수(듀얼시2개인듯)
int d = Screens.All; //내윈도우의 전부를 가져올수있다

 

전체화면캡쳐

Avalonia.Controls.Window a = new Avalonia.Controls.Window();
var width = a.Screens.Primary.Bounds.Width;
var height = a.Screens.Primary.Bounds.Height;

Bitmap bmp = new Bitmap(width,height);
Graphics gr = Graphics.FromImage(bmp);
gr.CopyFromScreen(0, 0, 0, 0, bmp.Size); //캡쳐
Mat screen = OpenCvSharp.Extensions.BitmapConverter.ToMat(bmp);
Cv2.ImShow("TopLevelScreen",screen);

 

 

결론

솔직히 이거 윈폼에서 하면.. 그냥 몇줄이면 구하는데 고생을했네.. 파면팔수록 느끼지만

윈도우프로그램은 그냥 윈폼이 최강인거같다..

블로그의 정보

독한 개발자

#독개#

활동하기