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
[2815] Re:그래픽에 대한 질문...아주아주 급해요..
박지훈.임프 [cbuilder] 4402 읽음    2000-01-21 00:00
미미 님이 쓰신 글 :
: 안녕하세요...
: 질문이 있어서 이렇게 글을 올려요.
: 무척 급한건데, 빨리 답해주시면 정말 고마울겁니다.
:
: 제가 이미지 처리를 해야 되는데, 잘 안되는 것이 있어서요.
:
: -첫번째-
: 우선 이미지 합성에 관한 것인데요.
: 단순히 투명색 지정해서 두개의 이미지를 합성하는 것이 아니라, 마스크이미지를 이용해서
: (굳이 마스크이지미가 아니더라도) 부드러운 이미지 합성을 하고 싶습니다.
:
: 예를 들면, 배경이미지하고, 배경이미지와 합성을 대상이미지, 그리고
: 배경이미지에 대한 마스크이미지가 있어요.
: 마스크이미지는 검정색과 흰색만 있는것이 아니라, 검정색에서 흰색으로 그라데이션되는
: 부분이 있는데, 이 그라데이션되는 부분의 이미지는 배경과 대상이미지가 서로 겹쳐져서
: 부드럽게 연결되야 되거든요..
:
: 포토샵의 알파채널을 이용한 합성같은거죠.
:
: - 두번째 -
: 그리고, 이미지를 조작할때 픽셀로 접근하니깐 속도가 느려서 scanline을 쓰려고 하는데,
: 잘 안되네요.(도움말도 잘 안나와있고) scanline쓰는 방법좀 알려주세요..
:
: - 세번째 -
: scanline을 쓰려면 대상이 되는 이미지의 해상도를 알아야 하는데, 어떻게 이미지의 해상도를
: 알아낼 수 있죠? BMP뿐만 아니라, JPEG등 빌더의 TImage에서 제공하는 모든 이미지포맷을 사용했을때,
: TImage컴포넌트가 가지고 있는 이미지의 해상도를 알고싶습니다.
:
: - 네번째 -
: TImage에 JPEG이미지가 들어있을때, TImage컴포넌트에 어떤 조작을 하고 싶습니다.(선이나, 문자출력 등..)
: 어떻게 해야 하나요?
: BMP이미지가 들어있을 경우는 Image1->Picture->Bitmap->Canvas->TextOut(0,0,"연습");
: 하는 되는데, JPEG가 들어있을 경우는 어떻게 해야될지 모르겠어요..
:
: 그리고 만약에, TImage에 이미지가 들어있지 않은 상태(NULL)에서 이미지 컴포넌트에다가
: 라인을 그리려면 어떻게 해야 하나여.
: Image1->Canvas->MoveTo(0,0); Image1->Canvas->LineTo(10,10);
: 하면 이미지컴포넌트의 배경이 흰색으로 바뀌던데, 바뀌지 않고 그냥 라인만 그릴수는 없나요.
: 꼭 이미지가 들어있어야만 자연스럽게 그려지나요?
:
: 위의 내용들이 궁금합니다...제발..제발 부탁해여....
: 임프님..부탁해여...



임펠리테리입니다.

질문이 하나 이상일 경우 조금 귀찮더라도 각각 나누어서 올려주시기를 부탁드립니다.
다른 분들이 비슷한 문제를 겪었을 때 이전의 글들을 검색하려고 해도, 여러가지 질문과 답변들이
하나의 글에 묶여있으면 찾아내기가 쉽지 않습니다. 다음부터는 여럿을 묶은 질문에 대해서는
답변을 하지 않겠습니다.

첫번째 질문.
빌더는 그래픽에디터가 아닙니다. 그 정도의 복잡한 연산은 빌더에서는 지원하지 않습니다.
알파채널(이게 뭔지도 몰라서 사무실 디자이너에게 물어봤습니다)과 같은 효과를 모든 그래픽
에디터에서 다 지원하는 것은 아니지요? 거꾸로 말하면, 구현하기가 그렇게 쉽지가 않다는 말이죠.

두번째 질문.
ScanLine을 이용해서 어떤 일을 하려는지 알수가 없으니 무엇을 알려드릴지 난감하군요. 자세히
다시 질문해주세요.

세번째 질문.
해상도라고 말씀하신 것은 가로와 세로 폭을 말씀하시는 건가요?
Image1->Picture->Graphic->Width // 이미지에 포함된 그림의 가로 크기
Image1->Picture->Graphic-> Height // 이미지에 포함된 그림의 세로 크기

네번째 질문.
이미지 컨트롤에 JPEG가 있을 때 그 위에 글자를 그리려면,
(dynamic_cast<TJPEGImage *>(Image1->Picture->Graphic))->Canvas->TextOut(0,0,"연습");
이렇게 하면 될 겁니다. 사실은 빌더3 때만 해봤기 때문에 확실히 빌더4에서 동작할지는 장담을
못하겠군요. 빌더3에서는 TJPEGImage 형식이 표준이 아니었기 때문에요.

마지막 질문.
원래 비어있는 이미지 컨트롤에는 내부의 그래픽이 NULL로서 아예 없는 상태입니다. 그래서
뒤쪽이 비쳐보이는거구요. 만약 여기에다 라인을 그리든지 하면 내부의 그래픽(비트맵이 되겠죠)
이 자동으로 생성되어버립니다. 비트맵이 투명할 수는 없지요? 그래서 디폴트 배경색인 흰색으로
채워져버립니다. 이것은 어쩔 수 없는 문제랍니다.

그럼 참고하시길...

+ -

관련 글 리스트
2811 그래픽에 대한 질문...아주아주 급해요.. 미미 3926 2000/01/20
2815     Re:그래픽에 대한 질문...아주아주 급해요.. 박지훈.임프 4402 2000/01/21
2825         Re:Re:이미지처리 다시 한번 부탁해요..임프님.. 미미... 4168 2000/01/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.