2009-11-21 8 views
4

XNA에서 스크린 샷을 찍으려면 어떻게해야합니까? System.Drawing.Graphics.CopyFromScreen 또는 Win32API없이 가능합니까? 가능하지 않다면 게임에 System.Drawing.Bitmap을 그리는 방법이 있습니까?XNA에서 스크린 샷 찍기

나는 스크린 샷을 찍은 다음 게임을 전체 화면 모드로로드하고 스크린 샷을 인쇄하고 싶습니다.

감사합니다.

+0

게임이로드되기 전에 * 시스템의 스크린 샷을 찍고 싶거나 게임이 실행되는 동안 게임의 스크린 샷을 찍고 싶습니까? –

+0

게임이로드되기 전에 시스템의 스크린 샷 –

답변

4

http://www.gamedev.net/community/forums/topic.asp?topic_id=537265&whichpage=1&#3469331

먼저 게임의 LoadContent 방법에 ResolveTexture2D를 만들 : 당신이 당신의 장면을 그릴 후

renderTargetTexture = new ResolveTexture2D(
     graphics.GraphicsDevice, 
     graphics.GraphicsDevice.PresentationParameters.BackBufferWidth, 
     graphics.GraphicsDevice.PresentationParameters.BackBufferHeight, 1, 
     graphics.GraphicsDevice.PresentationParameters.BackBufferFormat); 

이 그런 다음 그리기 방법에서 백 버퍼를 해결 : 마지막으로

graphics.GraphicsDevice.ResolveBackBuffer(renderTargetTexture); 

을, Draw 메서드에서 게임이 일시 중지 된 경우 Spritebatch를 사용하여 캡쳐 된 백 버퍼를 그립니다.

spriteBatch.Draw(renderTargetTexture, Vector2.Zero, Color.White); 

이미지를 회색조로 나타내려면 픽셀 쉐이더를 작성하고 LoadContent에 효과 파일을로드 한 다음 스프라이트 배치로 텍스처를 그리기 전에 효과를 설정해야합니다.

+0

작동하지 않습니다. 단지 기본 XNA blue CornflowerBlue 화면을 보여줍니다. –

+0

문제는 끝입니다. 그 코드는 내가 볼 수있는 한 괜찮습니다. – Martin

+1

나중에이 스크린 샷을 어떻게 저장할 수 있습니까? –

관련 문제