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
[19318] Re:G32 콤포넌트에서 resize된 이미지를 저장할 수 있는 방법은 없나요?
하느리 [handebug] 928 읽음    2002-06-12 17:26
네, 당근 예전크기 그대로 저장이 되져.
화면상에 보일 때만 크기를 조정해서 보여 주는 것이기 때문이져.
아래는 제가 데스크탑화면을 캡쳐하기 위해 만든 함수입니다.
보시면 아시겠지만 이를 조금 수정하면 원하는 크기로 저장하실 수 있을 것입니다.
수정하셔야 하는 부분은
HWND desktop = GetDesktopWindow ();
이걸
HWND desktop = Form1->Handle;
로 바꿔주시고, G32콤포넌트가 디스플레이되는 영역을 area 안에 넣고, 받아올 크기를 width, height에 넣어 주시면 됩니다.


//---------------------------------------------------------------------------
// 화면(CRT)을 그림으로 읽어오는 함수
// bmp    : 화면을 받을 클래스
// area   : 그림으로 받아올 화면 영역
// width  : 받아올 화면의 너비
// height :     〃        높이
void __fastcall GetCRT (Graphics::TBitmap *bmp, TRect& area, int width, int height)
{
    bmp->Width  = width;
    bmp->Height = height;
/*
    int col_num = GetCRTColorBit ();
    if ( col_num == 4 )         bmp->PixelFormat = pf4bit;
    else if ( col_num >= 16 )   bmp->PixelFormat = pf16bit;
    else                        bmp->PixelFormat = pf8bit;
*/
    HWND desktop    = GetDesktopWindow ();
    HDC dt_dc       = GetDC (desktop);
        SetStretchBltMode (bmp->Canvas->Handle, STRETCH_HALFTONE);
        StretchBlt (bmp->Canvas->Handle, 0,0, width, height,
                    dt_dc, area.Left, area.Top, area.Right - area.Left, area.Bottom - area.Top, SRCCOPY);
//                    dt_dc, 0,0, Screen->Width, Screen->Height, SRCCOPY);
    ReleaseDC (desktop, dt_dc);
}
//---------------------------------------------------------------------------



h1800 님이 쓰신 글 :
: 안녕하세요? ^^;
:
: g32 콤포넌트에서 보면~
: Image32 개체의 width나 height 정해주고..
: scalemode만 정해주면...
: 알아서 resize를 해주잖아요..
:
: 근데~
: Image32 안의 Bitmap을 저장한다거나 하면..
:
: bitmap은 예전 크기 그대로 있더라구요...
:
: 화면 상에 resize 되어 있는 이미지를..
: 저장 할 수 있는 방법은 없나 해서 질문 올립니다...
:
: 따로 resize만 하는 모듈을 구현해야 하는 건가요? --?
:
:

+ -

관련 글 리스트
19296 G32 콤포넌트에서 resize된 이미지를 저장할 수 있는 방법은 없나요? h1800 876 2002/06/12
19318     Re:G32 콤포넌트에서 resize된 이미지를 저장할 수 있는 방법은 없나요? 하느리 928 2002/06/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.