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
[74884] Re: Windows API로 간단하게 처리하는 방법
빌더(TWx) [builder] 3345 읽음    2018-04-14 00:17
앱돌이 님이 쓰신 글 :
: Observer 님이 쓰신 글 :
: : 앱돌이 님이 쓰신 글 :
: : : TIMAGE에 bitmap파일을 불러와 원을 그렸습니다.
: : :
: : : 그리고 밖의 이미지는 버리고 안의 이미지만 저장하고 싶은대
: : :
: : : 조언 부탁드립니다.
: : :
: : :
: :
: :  아마도 마스크 크롭핑을 말씀하시는거 같은데,
: : graphics32 컴포넌트 쓰시면 코드 단 몇줄이면 끝납니다.
:
: 아 그렇군요 사용을 안해봐서 한번 사용해봐야 할거 같아요!!




답변:


컴포넌트에 의존하지 말고, Windows OS가 제공하는 Region API 사용하면 간단하게 처리할 수 있습니다.


변환전


void __fastcall TForm1::Button1Click(TObject *Sender)
{
	TBitmap *pBmp = new TBitmap;
	pBmp->LoadFromFile("bg.bmp");

	HRGN rgnRect = CreateRectRgn(0, 0, pBmp->Width - 1, pBmp->Height - 1);
	HRGN rgnCircle = CreateEllipticRgn(pBmp->Width / 4, 10, pBmp->Width - (pBmp->Width /4), pBmp->Height - 10);
	HRGN rgnExcluded = CreateRectRgn(0,0,0,0);

	CombineRgn(rgnExcluded, rgnRect, rgnCircle, RGN_XOR);
	assert(rgnRect && rgnCircle && rgnExcluded);

	pBmp->Canvas->Brush->Color = clWhite;
	PaintRgn(pBmp->Canvas->Handle, rgnExcluded);

	DeleteObject(rgnRect);
	DeleteObject(rgnCircle);
	DeleteObject(rgnExcluded);

	pBmp->SaveToFile("bg2.bmp");
	delete pBmp;
}



변환후


이미지를 투명하게 처리하는 것도 Windows OS가 제공하는 Region API를 이용해서
영역을 특정한 후에 알파채널을 라이트 해주면 간단하게 처리 할 수 있지요.
컴포넌트에 의존하면 발전이 없어요.



+ -

관련 글 리스트
74872 이미지 원형 저장관련하여 질문이있어요 앱돌이 3120 2018/04/12
74880     Re:이미지 원형 저장관련하여 질문이있어요 Observer 3151 2018/04/13
74882         Re:Re:이미지 원형 저장관련하여 질문이있어요 앱돌이 3147 2018/04/13
74884             Re: Windows API로 간단하게 처리하는 방법 빌더(TWx) 3345 2018/04/14
74887                 Re:Re: Windows API로 간단하게 처리하는 방법 앱돌이 3323 2018/04/16
74886                 Re:Re: Windows API로 간단하게 처리하는 방법 앱돌이 3309 2018/04/16
74873     Re:이미지 원형 저장관련하여 질문이있어요 그 아이 3048 2018/04/12
74883         Re:Re:이미지 원형 저장관련하여 질문이있어요 3239 2018/04/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.