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
[39044] Re:ScanLine 사용하니까 이상하게 나와요
[] 1066 읽음    2005-02-04 01:34
PixelFormat에 대한 도움말을 참고하시기 바랍니다.
C++Builder 도움말 예제에 있는 것은 PixelFormat이 pf8bit일 때이므로 한 바이트당 한 픽셀이 되어 쉽게 처리할 수 있습니다.
하지만, 그렇지 않은 경우(예를 들어 한 픽셀 당 24비트를 차지하는 pf24bit)인 경우는 다르게 처리해야 합니다.
pf24bit인 경우, 각 픽셀에 대해 3바이트 씩인데 낮은 주소의 바이트부터 각각 Blue Green Red 값을 나타냅니다.


모르겠넹 님이 쓰신 글 :
: void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
: {
:  OpenDialog1->Execute();
:  String fileName;
:  fileName = OpenDialog1->FileName;
:  char* po;
:  po = fileName.c_str();

:  Graphics::TBitmap *gbitmap = new Graphics::TBitmap( );
:  Byte *ptr;
:  try
:  {
:      gbitmap->LoadFromFile(po);
:      for (int y = 0; y < gbitmap->Height; y++)
:     {
:       ptr = (Byte *)gbitmap->ScanLine[y];
:       for (int x = 0; x < gbitmap->Width; x++)
:         ptr[x] = (Byte)y;
:     }
:  gbitmap->Height = this->PaintBox1->Height;
:  gbitmap->Width = this->PaintBox1->Width;
:  PaintBox1->Canvas->Draw(0,0,gbitmap);
:
:  delete gbitmap;
:
:  }
:  catch(...)
:  {
:   ShowMessage("woops");
:  }
: }
:
: 대략 이렇게 코딩해서 비트맵을 열자니 그림이 짤려서 나오네요 1/3 정도...
: 비트맵을 뿌리고자 이러는건 아니구요 일단 비트맵부터 해보려고 하는데 쉽지 않네요.
: ScanLine 을 어떻게 사용해야 제대로 사용하는걸까요??
: 도와주세요~

+ -

관련 글 리스트
39041 ScanLine 사용하니까 이상하게 나와요 모르겠넹 1125 2005/02/03
39044     Re:ScanLine 사용하니까 이상하게 나와요 1066 2005/02/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.