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
[47678] Re:RAW데이타 BMP변환시.
[] 1244 읽음    2007-01-08 14:03
이희성 님이 쓰신 글 :
: Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
:   Byte *ptr;
:   try
:   {
:     pBitmap->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp");
:      /// 이렇게 파일에서 읽어오는 것 말고 네트윅으로 들어온 데이타를 사용하면 되겠죠..한라인씩 아래 loop처럼
:     ///  복사해주면 되지 않을까요..
:     for (int y = 0; y < pBitmap->Height; y++)
:     {
:       ptr = (Byte *)pBitmap->ScanLine[y];
:       for (int x = 0; x < pBitmap->Width; x++)  ptr[x] = (Byte)y;
:     }
:     Canvas->Draw(0,0,pBitmap);   /// 드로잉 하겠죠?
:   }
:   catch (...)
:   {
:     ShowMessage("Could not load or alter bitmap");
:   }
:   delete pBitmap;
:
: 위의 소스는 외랑님이 주신 소스입니다.. 이해가 안가는 부분이 있습니다
: FOR문 안이 이해가 가질 않습니다 TCP로 데이타를 전송받을건데...
:
: 저렇게 프로그램을 하면 FOR문때문에 저걸하는동안 다른 데이타를 전송받지 못하지않나여..?
: 저프로그램이 실행되는동안 계속해서 어떤 데이타를 보내야 하기 때문입니다..
:
: 아니면 폼을 따로 만들어 포문으로 돌려야 하나여? 그것도 쉬원치 않으면 타이머를 이용해 값을 받아야 하나여?
: 그폼만 아무것도 못하는건지 아니면 전체프로젝트가 아무것도 못하는건가요?

우선, 네트워크에서 데이터를 주고받을 때 그 양이 작은 경우에는 일거에 모두 보내고 받을 수 있지만 왠만한 BMP 파일이라면 일거에 되지 않고 수회에 나누어서 전송과 수신을 하게 됩니다.
이를 처리하는 방식에 있어서, 전송받는 컴포넌트/함수 등(이하 '컴포넌트')의 작동 방식은 크게 두 가지가 있습니다.
1. 컴포넌트의 내부에서 (수회에 걸쳐) 모두 전송받은 후 그 결과물을 컴포넌트 사용자에게 돌려주는 방식
2. 컴포넌트에서 (수회에 걸쳐) 전송받을 때 마다 전송받았다고 이벤트로 알려주거나 콜백함수를 실행시키면 컴포넌트 사용자 쪽에서 전송받은 내용물을 가져다 이용하는 방식

1의 경우, 컴포넌트 사용자 입장에서는 컴포넌트의 해당 메서드가 데이터를 모두 받은 후 리턴되거나 모두 다 받았다는 이벤트가 발생하면 그 때에 전송받은 전체 데이터로 작업하면 됩니다.
2의 경우, 컴포넌트 사용자 쪽의 이벤트핸들러나 콜백함수에서 전송받을 때 마다 데이터를 차곡차곡 저장해두었다가 모두 받으면 그 데이터로 작업하거나 복잡해질 수 있겠지만 전송받을 때마다 나누어서 작업할 수 있습니다.

결국, 어떤 컴포넌트나 함수를 사용하여 raw 데이터를 전송받을지 결정한 후 그 컴포넌트의 작동방식에 따라 작업하시면 되겠습니다.

+ -

관련 글 리스트
47674 RAW데이타 BMP변환시. 이희성 926 2007/01/08
47683     Re:RAW데이타 BMP변환시. 외랑 1189 2007/01/09
47678     Re:RAW데이타 BMP변환시. 1244 2007/01/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.