나는 C#을 사용하여 Windows 응용 프로그램을 만듭니다. 이미지 (전체 데스크탑 화면)를 캡처하고 폴더에 저장해야하는 버튼이 있습니다. 또한 나는 이미지의 미리보기를 보여줄 필요가있다.이미지를 가져 와서 폴더에 저장하는 방법 [C# windows application]
답변
Graphics.CopyFromScreen Method
샘플 코드 : 쇼 미리보기에 대한 같은
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
g.Save();
bmp.Save("D:\\file.jpg", ImageFormat.Bmp);
. IMO는 그걸 쓰려고 어렵지 않습니다.
안녕하세요, Niko은 잘 도와 주셔서 감사합니다. – Karthik
Nikko, 전체 해상도로 표시된 이미지를 저장하려면 어떻게해야합니까? –
@RoyiNamir Cant는 Graphics.CopyFromScreen 메서드로 그렇게합니다.이 메소드는 화면의 일부를 목적지로 복사합니다. 디스플레이 된 이미지의 전체 해상도에 대한 지식이 없습니다. –
Interop dll을 일부 가져와야합니다.
다음을 확인하십시오 example은 스크린 샷을 캡처하고 디스크에 저장하는 방법을 잘 보여줍니다.
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10)); GDI32.SelectObject(hdcDest,hBitmap);
GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat);
Cleanup(hBitmap,hdcSrc,hdcDest);
}
위의 예는 웹 사이트에서 가져온 것입니다. Perry Lee의 모든 코드
는 u've은/* 저자 게시 : 페리 리를 * 제출 : 캡처 화면 * ** 제출 날짜 (프로그램 스크린 샷 기능 추가) : 12/29/03 ** */ 없음을 모든 DLL을로드해야합니다. 그 코드는 다소 쓸모가 없습니다. .net2.0 이상은 매우 편리합니다. –
@Niko, true. 그물 넷은 먼 길을왔다. 넷. 넷은 더욱 더 향상된다. – Jethro
여기에 가져온 것을 수행하는 방법에는 여러 가지가 있습니다. Screen
클래스를 사용하면 인터넷에서 발견 된 몇 가지 간단한 샘플이 있습니다. 다른 사람들은 Direct3D를 사용하고 있습니다.
- TeboScreen: Basic C# Screen Capture Application;
- Capture a Screen Shot;
- C# – Screen capture with Direct3D;
- Capture DeskTop Screen;
- Enhanced Desktop Recorder in .NET using C# and Windows Forms; (아마도 귀하의 질문에 적합하지 않지만 추가 기능을 계획하는 경우 흥미로울 수 있습니다.)
- Capturing the Screen Image Using C#. 한마디로
는 생각은 Bitmap
오브젝트로 저장하고 파일에이 비트 맵을 저장하려면 Screen
클래스 또는 당신의 마음에 드는 방법을 사용하여 데스크탑의 이미지를 얻기로 구성되어 있습니다.
Bitmap
인스턴스를 만든 후에는 PictureBox
이 필요하고 Image
속성을 설정하고 이미지를 볼 수 있도록 양식을 사용자에게 표시하면됩니다.
희망이 도움이됩니다. =)
도움을 주셔서 감사합니다 – Karthik
무엇이 문제입니까? 오류가 무엇입니까? 너 뭐 해봤 니? 당신의 질문은 단지 성명서 일뿐입니다. – Smudge202
바탕 화면을 캡처하고 이미지를 폴더에 저장하는 방법은 무엇입니까? 링크에서 – Karthik