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
[55085] Re:ejaqufk4
장성호 [nasilso] 1374 읽음    2008-11-03 15:39
에.. 저도 잘 해보진 못했는데요
일반속으로 동영상 player는 DirectX 를 이용합니다.

DirectX쪽은 잘몰라서 제 설명이 틀릴수 있는데요

DirectX 하드웨어 가속기가 돌아가고 있는경우는 이방익으로 캡쳐 안됩니다.

키보드에 있는 "프린트스크린" 클릭해도 캡쳐안됩니다.

방법1.
   하드웨어 가속기를 끄고 캡쳐합니다.
  
    윈도우 시작-실행-dxdiag 입력하시고 엔터치면 DirectX진단도구가 뜹니다.
    거기서 "디스플레이" 탭에서 "DirectDraw 가속"을 사용안함으로 하시고 캡쳐하시면 됩니다.

방법2.
    directX화면을 캡쳐하는 프로그램을 사용합니다.


방법3.
   직접 directX 코딩으로 프레임버퍼의 내용을 읽어옵니다.
   개인적으로 아직 해보진 못했습니다
   참조
   http://blog.naver.com/mysticodoi?Redirect=Log&logNo=140023932991 (되는지 확인못함)
   http://persuade.bnp.co.kr/bbs/view.php?id=imb5&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=107


directX화면 캡쳐 성공하면 샘플좀 올려주세요
저도 좀 참고하게...

그럼..


linuxman 님이 쓰신 글 :
: 안녕하세요...<장성호님..디버깅 관련 글 고맙습니다...(원했던 답변으로 ... 아주 인상깊게  보았습니다)>
:
: 하나의 타이머에서... 스크린 전체를 bitmap 캡처해서 hdd에 저장... 했다가
: 다시 뿌려주는데...  화면에 동영상이 돌고 있는  자리는 검은색으로만 표시됩니다.
:
: 동영상이 실행되고 있는 자리를 캡쳐 하고 싶은데... 일반적인 화면 캡쳐하는 방법으로는 안되는것은데..
: 어떤 방법으로 해결할수 있나요?
:
:
:
: ==== test code===
: void __fastcall TForm1::Timer1Timer(TObject *Sender)
: {
:       AnsiString msg;
:       static int i=0;
:       msg.sprintf("Screen Shoot %d",i++);
:       lblShot->Caption=msg;
:       HDC dc = GetDC(0);
:       Graphics::TCanvas *s = new Graphics::TCanvas;
:       s->Handle=dc;
:
:
:       screenImage = new TImage(Form1);
:       screenImage->Picture->Bitmap->Width=Screen->Width;
:       screenImage->Picture->Bitmap->Height=Screen->Height;
:       TRect rect = Rect ( 0, 0,Screen->Width, Screen->Height);
:       screenImage->Picture->Bitmap->Canvas->CopyRect(rect,s, rect );
:       screenImage->Picture->Bitmap->SaveToFile("c:\\a.bmp");
:
:       delete s;
:       delete screenImage;
:       ReleaseDC (NULL,dc);
:
:  
:       Image1->Picture->Bitmap->LoadFromFile( "c:\\a.bmp" );
:      
: }
:
:
: ( 첨부된 화일 aa.jpg는  곰플레어를 캡쳐한것인데... 실제로 저는 direct show를 이용한 dspack2.34  이용해서 player를 만들었는데.. 곰플레이어를 캡쳐할때와 똑같이... 화면캡쳐가 안됩니다 )
:
:
: 수고하세요..

+ -

관련 글 리스트
55084 ejaqufk4 linuxman 1194 2008/11/03
55085     Re:ejaqufk4 장성호 1374 2008/11/03
55118         Re:Re:ejaqufk4 권창구.태원아빠 2051 2008/11/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.