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
[4280] Re:Re:Re:불러올 이미지의 정보를 아는 방법좀 알려주세요
박지훈.임프 [cbuilder] 3389 읽음    2000-10-18 00:00
꼼지락 님이 쓰신 글 :
: 컬러수나 가로/세로 크기를 읽어와야 알수 있는데여~ 글믄..
:
: 읽어왔으믄 어케 알져? ㅡㅡ; ㅠㅠ ㅠㅠ 무심하신 대답 ㅠㅠ
:


그냥 '정보'라고 하셨으니 무슨 정보를 말하는지 제가 알수 있겠습니까. 제 생각엔 질문하신 꼼지락님이 무심하게 질문하신게 아닌가 싶은데요. ^^;;

이미지를 불러오기 위해 TImage를 썼다면 이미지의 실제 데이터는 TImage의 Picture 프로퍼티내에 Graphic 프로퍼티에 저장됩니다. 이것은 그냥 raw 데이터로서 불러온 이미지 자체에 대한 아무런 정보를 알아낼 수가 없구요. TPicture내에는 각 포맷에 따라 별도의 객체가 존재하게 되는데, 예를 들어 비트맵이라면 TPicture내에 Bitmap이라는 프로퍼티를 갖습니다. 이것은 TBitmap형이므로 다시 그 안의 프로퍼티들인 Width, Height, Palette들이 불러온 실제 이미지의 정보입니다. 예를 들어 Image1에 비트맵을 불러왔고, 그 비트맵의 가로 크기를 알아내려면 다음과 같이 하면 됩니다.
ShowMessage(Image1->Picture->Bitmap->Width);

비트맵이 아니라 jpg인 경우에는 조금 다릅니다. jpg의 경우에도 역시 TPicture내에 Graphic에는 raw 데이터가 저장되어있지만, 비트맵이 아니므로 TBitmap형의 프로퍼티는 없습니다. 그래서 Graphic 프로퍼티를 jpg 데이터 포맷의 객체인 TJPEGImage 형으로 캐스팅한 후, 그 캐스팅한 내용으로부터 정보를 알아내면 됩니다. 예로서, 위의 경우와 같은데 image1에 jpg 파일이 올라왔다면 다음과 같이 하면 됩니다.
ShowMessage(((TJPEGImage *)Image1->Picture->Graphic)->Width);

gif도 jpg의 경우와 같습니다. jpg든 gif든 vcl 표준 이미지포맷이 아니기 때문에(표준은 비트맵, 아이콘, 메타파일 뿐입니다) GIF파일의 포맷에 맞는 데이터형으로 캐스팅하면 됩니다. 그런데 gif는 빌더에 기본으로 포함되어 있는 jpg포맷과는 달리 포맷에 맞는 데이터형이 없습니다. 그래서 서드파티의 gif 라이브러리를 깔아야 볼 수 있는데, 만약 가장 많이 사용되고 제 자료실에도 등록되어있는 TGIFImage를 사용했다면 클래스이름이 TGIFImage입니다. 방법은 동일하구요.

여기서 간단히 예를 들기 위해 가로 길이를 알아내기 위해 Bitmap 혹은 Graphic 객체에 접근했는데, 실제로는, 가로/세로 크기는 단순히 Picture 객체의 Width/Height 프로퍼티로도 알아낼 수 있습니다. 하지만 설정되어있는 투명컬러라든지 팔레트 등의 정보는 Bitmap 혹은 Graphic 객체에서만 알아낼 수 있습니다. 그림에 사용된 컬러수는 팔레트 정보를 이용해서 알아낼 수 있구요.

이정도면 무심한 대답은 아니지요? ^^
그럼 이만...

+ -

관련 글 리스트
4270 불러올 이미지의 정보를 아는 방법좀 알려주세요 수야 2991 2000/10/18
4271     Re:불러올 이미지의 정보를 아는 방법좀 알려주세요 박지훈.임프 3111 2000/10/18
4274         Re:Re:불러올 이미지의 정보를 아는 방법좀 알려주세요 꼼지락 3082 2000/10/18
4280             Re:Re:Re:불러올 이미지의 정보를 아는 방법좀 알려주세요 박지훈.임프 3389 2000/10/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.