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
[69652] Canvas->TextOut관련 질문입니다.
주누 [junesaku] 4148 읽음    2013-06-17 10:54
현재 DirectShow를 이용해서 주기적으로 그림파일을 저장하는 프로그램을 만들고 있습니다.

샘플그래버로 raw데이터를 받아와 직접 Graphics::TBitmap에 넣은뒤 TJPEGImage로 TBitmap을 불러온뒤 jpg로 저장시키고 있습니다.


여기서 이미지에 시간정보를 추가하려고 하는데 직접 생성한 TBitmap에 Canvas->TextOut을 이용하여 출력하면
점점 메모리 사용율이 커집니다.

TextOut을 하는 곳을 주석 처리하면 메모리 증가는 보이지 않습니다.

증가시 상태를 확인해보면 GDI 헨들이 간간히 2나 1씩 증가하면서 메모리 사용율도 같이 올라가고 있습니다.

코드가드는 따로 못잡는것 같습니다.

이후 코드 입니다.

void t_cam::bmp_add_time(Graphics::TBitmap *bmp, TFont *font){
    AnsiString time = FormatDateTime("hh:mm:ss", Now());
    int x=5;
    int y=6;

    
  //포문 첫줄이 이상하게 나오는 군요. bmp->Canvas->Brush->Style = bsClear; 입니다.

    for(int i=1; iCanvas->Brush->Style = bsClear;
        bmp->Canvas->Font->Name = font->Name;
        bmp->Canvas->Font->Size = font->Size +1;
        bmp->Canvas->Font->Style = TFontStyles() << fsBold;
        bmp->Canvas->Font->Color = clWhite;
        bmp->Canvas->TextOut(i*font->Size -1, 4, time.SubString(i,1));
        bmp->Canvas->Font->Size = font->Size;   
        bmp->Canvas->Font->Style = TFontStyles();
        bmp->Canvas->Font->Color = clBlack;
        bmp->Canvas->TextOut(i*font->Size, 5, time.SubString(i,1));
    }
}
//함수끝


해당 함수 호출전 비트맵과 폰트는 생성,
호출후 삭제하고 있습니다.

+ -

관련 글 리스트
69652 Canvas->TextOut관련 질문입니다. 주누 4148 2013/06/17
69655     다른 문제인것 같습니다. 주누 2794 2013/06/17
69660         Re:다른 문제인것 같습니다. 산들바람 3853 2013/06/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.