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
[41731] Re:Re:Re:Re:[질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~
evergreen [heredity] 3008 읽음    2005-08-31 20:28
Windows\WinNT.BMP를 읽어 PixelFormat를 변경한 후 각기 다른 이름으로 저장해 봤습니다.
참조하세요.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  // 실행 결과
  // "123"    =  48K
  // "123-32" = 188K
  // "123-24" = 142K
  // "123-8"  =  48K
  // "123-4"  =  24K
  // "123-1"  =   7K

  Image1->Picture->LoadFromFile( "C:\\Windows\\WinNT.BMP" );
  Image1->Picture->SaveToFile( "123" );
  Image1->Picture->Bitmap->PixelFormat = pf32bit;
  Image1->Picture->SaveToFile( "123-32" );
  Image1->Picture->Bitmap->PixelFormat = pf24bit;
  Image1->Picture->SaveToFile( "123-24" );
  Image1->Picture->Bitmap->PixelFormat = pf8bit;
  Image1->Picture->SaveToFile( "123-8" );
  Image1->Picture->Bitmap->PixelFormat = pf4bit;
  Image1->Picture->SaveToFile( "123-4" );
  Image1->Picture->Bitmap->PixelFormat = pf1bit;
  Image1->Picture->SaveToFile( "123-1" );
}

- heredity -

evergreen 님이 쓰신 글 :
: BMPImg->PixelFormat = pf24bit
: 은 단순한 대입문이 아니라 Property를 변경하는 겁니다.
: 내부에서 무슨일을 할 진 며느리도 모르죠! ^^
:
: Graphics.PAS를 대~충 보니 PixelFormat에 값을 대입하면  SetPixelFormat()가 호출되며,
:   SetPixelFormat() -> CopyImage() -> GetDIBits(), SetDIBColorTable(), BitBlt(), ...
: 등의 처리를 하는 것을 보니
: 실제 Bitmap을 해당 Format으로 변환 하는 것으로 보입니다.
: 참고로 Bitmap의 Width, Height등을 변경하면 CopyImage()이 호출됩니다.
: 별 도움이 안되는 답변이라 미안합니다. --;
: - heredity -
:
: ilys4 님이 쓰신 글 :
: : 진짜 그것만으로 되나요?
: : 안에 데이타는 안바뀔꺼 같은데....
: : 8비트는 인덱스 방식 아닌가요? 24비트로 바꿀려면 팔레트 찾아서 일일이 바꿔주면 될것 같은데,
: : 진짜 그냥 BMPImg->PixelFormat = pf24bit;
: : 이것 만으로 데이타를 바꿔주는지....
: :
: : 정재훈 님이 쓰신 글 :
: : : mossmin 님이 쓰신 글 :
: : : : [질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~
: : : : 참고 자료 라도 알려 주시면 감사하겠습니다.
: : :
: : : 단순히 저장되는 포맷을 바꾸는 걸 원하시는 건가요?
: : : 아니면 영상 정보가 보간을 통해서 24bit 칼라가 되기를 원하시는 건가요?
: : :
: : : 단지 저장포맷만 바꾸시길 원하시면 간단하게
: : :
: : : BMPImg->PixelFormat = pf24bit;
: : :
: : : 지정하시고 저장하시면 됩니다.

+ -

관련 글 리스트
41723 [질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~ mossmin 1522 2005/08/30
41727     Re:[질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~ 정재훈 1977 2005/08/31
41729         Re:Re:[질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~ ilys4 1728 2005/08/31
41730             Re:Re:Re:[질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~ evergreen 2387 2005/08/31
41731                 Re:Re:Re:Re:[질문]8bit BMP파일을 24Bit BMP파일로 변환하는 방법을 알려주세요~ evergreen 3008 2005/08/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.