C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[4961] [질문] bitmap->loadfromstream에서요..
Fenrir [] 3608 읽음    2001-01-19 16:46
바탕화면을 캡쳐해서 뿌려주는 프로그램 소스거든요?

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
// 캡쳐
HDC DeskTopDC;
Graphics::TBitmap *tmpBitmap = new Graphics::TBitmap();
TMemoryStream *tmpImage = new TMemoryStream();
DeskTopDC = GetWindowDC(GetDesktopWindow());
tmpBitmap->Handle = CreateCompatibleBitmap(DeskTopDC,
Screen->Width, Screen->Height);
BitBlt(tmpBitmap->Canvas->Handle,0,0,Screen->Width,
Screen->Height,DeskTopDC,0,0,SRCCOPY);

tmpBitmap->SaveToFile("C:\\bitmap.bmp");
tmpImage->LoadFromFile("C:\\bitmap.bmp");

//화면출력
Image1->Picture->Bitmap->LoadFromStream(tmpImage);

DeleteObject(tmpBitmap->Handle);
delete tmpBitmap;
ReleaseDC(0, DeskTopDC);
}

이렇게 하면 캡쳐되서 뿌려지긴 하는데
파일로 저장하지 않고 비트맵을 스트림으로 저장한 다음
Image1->Picture->Bitmap->LoadFromStream(스트림); 이런식으로
불러올수는 없나요? 다음처럼요..

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
// 캡쳐
HDC DeskTopDC;
Graphics::TBitmap *tmpBitmap = new Graphics::TBitmap();
TMemoryStream *tmpImage = new TMemoryStream();
DeskTopDC = GetWindowDC(GetDesktopWindow());
tmpBitmap->Handle = CreateCompatibleBitmap(DeskTopDC,
Screen->Width, Screen->Height);
BitBlt(tmpBitmap->Canvas->Handle,0,0,Screen->Width,
Screen->Height,DeskTopDC,0,0,SRCCOPY);

tmpBitmap->SaveToStream(tmpImage); // 바뀐부분

//화면출력
Image1->Picture->Bitmap->LoadFromStream(tmpImage);

DeleteObject(tmpBitmap->Handle);
delete tmpBitmap;
ReleaseDC(0, DeskTopDC);
}

원래 만들려는 프로그램이 클라이언트에서 바탕화면을 캡쳐해서
서버로 보내고 서버에서 보여주는 프로그램이거든요...
근데 문제가 첫번째 소스처럼 일단 파일로 저장한다음에
보내면 문제없이 서버에서 보여지는데..
두번째 처럼 스트림으로 바로 보내버리면
invalid bitmap이라면서 보여주질 못하더라구요..
그렇다고 파일로 저장하고 보내자니 저장하는 시간이 아깝고..

답변을 바랍니다..
행복하시길~


+ -

관련 글 리스트
4961 [질문] bitmap->loadfromstream에서요.. Fenrir 3608 2001/01/19
4966     Re:[질문] bitmap->loadfromstream에서요.. 한꼬맹이 3332 2001/01/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.