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
[35697] TBitmap 에 관련된 질문 하나 올립니다.
머슴.한석복 [han8783] 933 읽음    2004-06-16 13:41
TBitmap 을 실시간으로 생성을 해서,
이미지를 저장하는 루틴을 작성 했는데, 이상하리만치 시간이 많이 걸려서 디버깅을 해보니까,

PixelFormat 을 변환 하는 과정에서 엄청난 시간을 소비 하더군요.

간단하게 소스를 기술 하면,

    Graphics::TBitmap *bmp = new Graphics::TBitmap();
    bmp->Width  = img_w;
    bmp->Height = img_h;

    bmp->PixelFormat = pf8bit; <<--------문제의 그 라인..이 라인이 처리 되는데만 1초에 가까운 시간이.

이미지는 대략 1k x 1k정도 이구요. 그레이스케일로 저장 하고자 하는 거죠.
그런데, 이런 방법이 있더라구요. TImage를 하나 동적으로 생성 해서, 거기에 그레이스케일 이미지를 먼저 하나 LoadFromFile로 로딩 한 후에, 그러니까,

    TImage *timg = new TImage(this);
    timg->LoadFromFile("sample.bmp");
    이 timg->Picture->Bitmap을 저장 하는 루틴에 인자로 보내서 처리를 하니까, 정상적인 처리(주어진 시간내에)가 가능 하더군요.

제가 알고 싶은 것은, pixelformat을 변경 해주는 방법입니다.
그냥 직접 소스 레벨에서 프로퍼티를 셋팅 하는것에는 이런 문제가 있고,
TImage에서 처리하는 것에는 아무 문제가 없어 보이니까 어떤 다른 방법이 있지 않나 해서요.

아시는 분, 리플좀 부탁 드립니다.

+ -

관련 글 리스트
35697 TBitmap 에 관련된 질문 하나 올립니다. 머슴.한석복 933 2004/06/16
35703     Re:TBitmap 에 관련된 질문 하나 올립니다. 방태윤 932 2004/06/16
35706         관심과 답변 감사 드립니다.^^(내용 무) 머슴.한석복 774 2004/06/16
35709             Re:관심과 답변 감사 드립니다.^^(내용 무) 방태윤 754 2004/06/16
35711                 Re:Re:관심과 답변 감사 드립니다.^^(내용 무) 머슴.한석복 858 2004/06/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.