조회 수 796 추천 수 8 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
http://user.chol.com/~oc985210/download/PNG2DIB.zip

다운로드

VC만으로 게임을 만들 때 그림 처리가 상당히 곤란하시죠? 리소스로 넣자니 실행파일 크기가 커지고, 비트맵 파일로 불러들일려고 해도 상당히 귀찮잖아요. (아니라고 하시면 곤란-_-;)

 

PNG 타입의 그림 파일은 여러분도 잘 아시다시피 RPG만들기 2000부터 지원해온 그림 파일입니다. 이런 파일을 간편하게 DC 형태로 바꿔주는 라이브러리...의 소스입니다.

 

사용하실 때는 컴파일 결과의 DLL파일과 동봉된 두 DLL파일과 헤더파일 두개를 모두 한곳에 몰아넣고 Image.h만 인클루드 해서 쓰시면 됩니다.

 

메소드를 살펴보지요.

CImage::Get*()

이놈들은 그림파일을 연 다음에 GDI 오브젝트들을 사용하고 싶을 때 호출하는 함수가 되겠습니다.

CImage::OpenImgFile(LPCTSTR szFileName, BOOL bSprite = TRUE)

이놈이 핵심인데요, 이놈은 그림파일을 열어서 DIB 사양의 GDI 오브젝트를 만들어줍니다.

 

간단한 사용법이라고 한다면, 예제를 들면 되겠네요.

 

#include <windows.h>
#include "Image.h"

void main()
{
 HDC hdcScr;
 CImage image;
 int x, y, w, h;

 image.OpenImgFile("test.png"); // 그림파일을 열고
 x = (1024 - image.GetBitmapInfo()->bmiHeader.biWidth) / 2, // image.GetBitmapInfo()는 그림에 대한 각종 정보가 들어 있는 구조체의 포인터를 리턴. BITMAPINFO 구조체
 y = (768 - image.GetBitmapInfo()->bmiHeader.biHeight) / 2,
 w = image.GetBitmapInfo()->bmiHeader.biWidth,
 h = image.GetBitmapInfo()->bmiHeader.biHeight;

 hdcScr = GetDC(NULL); // DC를 받아서
 if(image.HasAlpha()) // 투명색이 있다면
 {
  BitBlt(hdcScr, x, y, w, h, *image.GetMaskImage(), 0, 0, SRCAND); // 마스크를 찍어주고
 }
 BitBlt(hdcScr, x, y, w, h, image, 0, 0, image.HasAlpha() ? SRCPAINT : SRCCOPY); // 그 위에 그림을 뾱[...]

 ReleaseDC(NULL, hdcScr);
}

 

뭐, 대충 이런 느낌으로 쓰시면[...]

 

소스 파일에는 상당히 자세하게 주석을 단다고 달아뒀으니[...] 아마 이해하는데 큰 어려움은 없을거라고[...]

 

참, 컴파일 하실 때는 Win32 Dynamic-Link Library로 프로젝트를 생성하셔서 쓰셔야 할겁니다~_~ 그리고 동봉된 lib파일도 필수로 삽입을..

 

ps. 테스트 환경은 펜티엄 M 프로세서 1.5기가헤르츠, 윈도우즈 엑스피였고, 문제 없이 잘 돌아갔습니다.

ps2. 동봉된 DLL 파일은 각각 libpng.org, zlib.net에서 소스를 받아서 Win32 DLL ASM Release 에서 컴파일했습니다.

ps3. 이걸로 조만간 어떠한 게임이 만들어질 예정[...]


?

  1. RPG XP 배워보기 <케릭터좌표->그림좌표>

    Date2005.11.23 CategoryRPG Maker By덩키동크 Views904
    Read More
  2. [TIP]RXP에서 돈 99999999 한번에 올리기

    Date2005.08.19 CategoryRPG Maker ByCC(虎) Views898
    Read More
  3. rpg만들기2003사용법

    Date2010.02.24 CategoryRPG Maker ByC8마린 Views886
    Read More
  4. [RPG XP]간단한.... 그러나 중요한, 그림자 만들기

    Date2005.12.12 CategoryRPG Maker By실키 Views885
    Read More
  5. [초 노가다 시스템]그림 메뉴

    Date2007.04.08 CategoryRPG Maker By우드록맨 Views880
    Read More
  6. 이클립스 강좌 1 AVD생성 밑 실행

    Date2014.10.07 CategoryRPG Maker By이클립스 Views879
    Read More
  7. 이벤트로 제작하는 턴알전투 예제 (ETB)

    Date2005.11.29 CategoryRPG Maker By덩키동크 Views872
    Read More
  8. 원경에 대하여 알아본다.

    Date2005.06.19 CategoryRPG Maker ByNorid Views870
    Read More
  9. 액션RPG에 대한 개인적인 의견

    Date2005.11.14 CategoryRPG Maker By필기도구 Views868
    Read More
  10. 게임 만들기 프로젝트 -1-

    Date2007.02.28 CategoryRPG Maker By다크세이버™ Views861
    Read More
  11. rpgmv 마우스 지원과 터치 지원이 되니.

    Date2015.10.25 CategoryRPG Maker By팡소리 Views858
    Read More
  12. [VB] SRPG의 이동경로는 어떻게? (1)

    Date2005.12.30 CategoryRPG Maker By성령의분노 Views852
    Read More
  13. RXP 이동 루트 설정 설명

    Date2005.07.29 CategoryRPG Maker By『연금술사』 Views836
    Read More
  14. [VB] SRPG의 이동경로는 어떻게? (2)

    Date2006.01.03 CategoryRPG Maker By성령의분노 Views835
    Read More
  15. RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상.

    Date2015.10.25 CategoryRPG Maker ByHT9MAN Views832
    Read More
  16. MID 파일의 소리를 개선해보자.

    Date2010.02.07 CategoryRPG Maker By밀크커피 Views820
    Read More
  17. 은행 시스템 구현하기

    Date2009.11.03 CategoryRPG Maker By앞만보맨 Views814
    Read More
  18. 광부와 변수레벨 시스템

    Date2005.09.24 CategoryRPG Maker Byll김ll밥말이™ Views805
    Read More
  19. srpg만들 때, 이벤트블록 3개로 이동범위 적용하기.

    Date2005.11.15 CategoryRPG Maker By플러르들리스 Views799
    Read More
  20. PNG 그림파일을 출력할 수 있는 라이브러리

    Date2005.08.02 CategoryRPG Maker By에스페란사 Views796
    Read More
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 15 Next
/ 15






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)