|
차분한 설명 감사 드립니다.
직접 해보고 문의 다시 해보도록 하겠습니다.
감사합니다.
방태윤 님이 쓰신 글 :
: TBitmap 을 화면 사이즈 크기로 생성을 하시고 (TBitmap*bmp)
: bmp->PixelFormat=pf24bit;
:
: GetDC(0) 로 얻어온 hdc 로 bmp 의 Canvas 에 그려줍니다.(CreateDC를 사용해도 됩니다)
: (StretchBlt 는 확대 축소용이므로 그대로 복사할때는 BitBlt 가 낫겠습니다)
:
: 얻어온 이미지의 각 픽셀은
:
: TColor color=bmp->Canvas->Pixels[x][y];
: 또는
: unsigned char*pixel_buffer=bmp->ScanLine[y];
:
: 로 접근해서 사용할수 있습니다.
:
: 화면에 뿌리는거는,
:
: bmp->Canvas->Pixels[x][y]=변경된값;
: 또는
: *(pixel_buffer+pos)=변경된값
: pos 는 bmp 의 픽셀포맷 에따라 계산하는데.
: 24bit 인 경우라면 3 바이트 이므로
: r값 pos=x*3+0;
: g값 pos=x*3+1;
: b값 pos=x*3+2;
: (r,g,b 순서가 맞는지 모르겠네요)
:
:
: 으로 변경한후에
:
: 화면Canvas->Draw(0,0,bmp) 로 그리면 되겠네요,
:
: (bmp->Canvas->Pixels[x][y] 방법은 속도가 느립니다.)
:
:
: 피코맨 님이 쓰신 글 :
: : 수고많으십니다.
: :
: :
: : createDC 함수를 이용해서
: : 디스플레이의 현제 소스를 따온뒤에
: : StretchBlt 함수를 통해서 이미지 화면에 출력까지 하는걸 완성하였습니다.
: :
: : 기본이 없는터라 생각보다 오래걸리네요
: :
: : 이후에 몇가지 질문 드려보겠습니다.
: :
: : 일단 제 구상은
: :
: : 1. 화면을 따온다.
: : 2. 화면의 화소에 따라서 2차원 배열에 담는다
: : 3. 배열을 적당한 수준으로 분석하고 처리한다.(영상처리)
: : 4. 처리된 배열을 이용해 화면에 뿌린다.
: :
: : 요기까지 입니다.
: :
: : 3번은 알아서 조금씩 공부해가면서 해볼생각입니다.
: :
: : 일단 1번은 화면의 소스DC는 딸수 있겟네요.... createDC 함수를 이용해서 말이죠
: : 다만 2차원 배열로 담을려면 어떻게 해야하는지.....
: : 또는. 다른방법으로 바로 2차원 배열에 담을수 있는방법이 있다면 추천해주시기 바랍니다.
: :
: : 4번도 처리가 된 배열을 고속으로(더블버퍼링개녕)으로 처리할수있는 방법을 좀 부탁 드립니다.
: :
: : 스크린샷 찍고 차분이 해볼려고 하는데 아직 어렵네요...
: :
: : 도움 부탁 드립니다.
: :
: : 주말 잘 보내시기 바랍니다.
: :
: :
|