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
[47526] Re:bmp 변환시.
외랑 [] 1074 읽음    2006-12-22 16:32
: 진수네모님이 알려주신 소스입니다...
: 근데 여기서 구조체 정의부분을 잘 모르겟씁니다.. bmp포맷의 사이즈에 맞게 long int 형식으로 각각의 구제체안에 변수를 선언해 주는건가요?
: 그리고 만약 tcp로 들어온 데이타를 가지고 폼에서 불러올때 어떤식으로 해야 하는지요?
: 이미지 폼이라던가..? 아님 다른것 어떤게 있을까요...

네모님은 파일이 아닌 메모리로 받은 데이터를 파일로 만드는 법을 알려주신 겁니다.
쉽게 생각하면 비트맵 파일은 파일 헤더 + 비트맨 내용으로 구성되어 있는 거죠...
그래서 데이타만 받았으니까 앞에다가 헤더를 추가해서 파일로 적으면 비트맵파일이 되는거죠
대신 맞춰줘야 할 내용들을 잘 맞추어 줘야 제대로 되겠죠?

그냥 제 생각엔 네트웍으로 들어온 데이타를 받았다면.. 비트맵 개체에다 받아온 한라인 한라인씩 넣어준 다음
Raw데이타를 다 채우면 화면에 드로잉 하면 되지않을까 합니다.
예제는 이와 같이 .... 

참고) TBitmap 의 ScanLine 메소드 입니다.  아래 예제도 찾아보시면 나올겁니다...

첫 영문이 맘에 들지 않습니까? 이 예제는 비트맵에 직접 드로잉하는 걸 보여준다..ㅋㅋ

//// This example shows drawing directly to the Bitmap
  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;

+ -

관련 글 리스트
47523 bmp 변환시. 이희성 1118 2006/12/22
47526     Re:bmp 변환시. 외랑 1074 2006/12/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.