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
[48647] Re:자답.. GDI+ 에 대한...
슬.강슬기 [mydog21] 1839 읽음    2007-03-29 12:54
슬.강슬기 님이 쓰신 글 :
: 간단한 이미지 뷰어를 만들고 있는데요
:
: 다음 이미지를 미리 읽어와서
: 이미지 로딩하는 시간을 단축시켜 보려고합니다.
:
: 스왑버퍼란는 말 뜻이 맞는지는 모르겠는데요^^;;;
:
: 현재 TImage 컨트롤 두개를 두고,
:
:
: 한장을 미리 읽어온 다음 버튼을 누르면
: 아래와 같이 두장을 바꿔치기 합니다.
:
: Image->Visible = false;
:
: tmpImage = Image;
: Image = ImageSwap;
: ImageSwap = tmpImage;
:
: Image->Visible = true;
:
: 바꿔치기 한뒤에
: 아래와 같이 바로 다음 이미지를 Thread를 이용하여 ImageSwap 에 읽어 오는데,
:
: TImageLoader* ImageLoader = new TImageLoader(ImageSwap,strFile);   
:
: 스레드가 종료된 다음 위의 스왑 구문이 처리된다는게 문제입니다..
: 이미지가 큰 경우는 스레드를 쓰기 전 아래의 코드와 속도가 거의 동일하네요^^;;
: 사실상 스레드가 무의미 해졌네요.
:
: Image->Picture->LoadFromFile(m_strImageFile);
:
: 스레드 내부의 Excute() 소스는
:
: void __fastcall TImageLoader::Execute()
: {
:     Image->Picture->LoadFromFile(m_strImageFile);
:     Synchronize(&Swap);
: }
:
: 다음과 같이 되있습니다.
: Image 와 strImageFile 에서는
: 생성자로 초기화 하고 있구요.
:
: 기본적인 문제는 파악하고 있습니다.
:
: Thread 의 Excute() 안에 vcl 클래스가 쓰이는것...
:
: 제가 쓰는 방법에 문제가 있는지 궁금합니다.
:
: 해결책이 있다면 어떤것이 있을지...
: (GDI+,Graphi32를 이용하면 될까요?)
:
: 하나 더 궁금한것은
: 만약 GDI+ 로 구현한다고 할때..
: Image->Canvas->Handle 를 가지고
: Drawing 한다면...
: 이것은 제가 원하는 대로 작동할까요?
:
:
: 아, 한가지 더 ^^;;
:
: GDI+를 써서 직접 테스트 해보고 싶었는데
:
: GDI+를 이용한 이미지 로딩의 간단한 프로그램을 작성해봤습니다.
:
:     Gdiplus::GdiplusStartupInput gdiplusStartupInput;
:     ULONG_PTR  gdiplusToken;
:
: //    Initialize GDI+.
:     GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
:
:     Gdiplus::Graphics graphics(Image1->Canvas->Handle);
:
: //    Use GDI+
:     Gdiplus::Image img(L"c:\\test.jpg");// = new Gdiplus::Image(ws.c_bstr());
:     graphics.DrawImage(&img,0,0);
:
: //    shutdown GDI+
:     Gdiplus::GdiplusShutdown(gdiplusToken);
:
: 위의 내용을 컴파일 하면
: [Linker Error] Unresolved external 'GdipFree' referenced from
: 이것과 같이 링커 에러가 납니다;;;
: 링커 에러만 뜨면 막막하다는....
:
: 사실 제가 직접 테스트 해보고 싶었는데 GDI+를 처음 사용해봐서요^^;;;
:
: 고수님들의 조언 부탁드리겠습니다.
:
: Conditional Define 에 STRICT 를 추가 했구요,

gdiplus.lib 를 연결 안해서 링커 에러가 났었군요-_-;;;

+ -

관련 글 리스트
48642 TImage를 가지고 스왑버퍼를 구현해보려고 하고 있습니다. :) 슬.강슬기 1324 2007/03/29
48647     Re:자답.. GDI+ 에 대한... 슬.강슬기 1839 2007/03/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.