클라이언트에 대한 자료긴 하지만 좌절과 열정을 다시 불타 오르게 하는 PT.
클라이언트 지망하는 사람들에게 좋은 참고가 될거같습니다.
'Programming > etc.' 카테고리의 다른 글
[장영수] 게임 UI 구현에 관한글 (0) | 2010.06.18 |
---|
[장영수] 게임 UI 구현에 관한글 (0) | 2010.06.18 |
---|
[강민수] DirectX-기초수학 (0) | 2010.06.10 |
---|---|
[손동진] 빌보드 (Billboard) (0) | 2010.06.07 |
[김재진]행렬의 곱셈 및 항등행렬 설명 (0) | 2010.05.27 |
[손동진] 재질과 광원 (0) | 2010.05.27 |
[김재진] 3D 행렬 (1) | 2010.05.24 |
[손동진] 빌보드 (Billboard) (0) | 2010.06.07 |
---|---|
[김재진]3D그래픽스의 개념과 렌더링파이프라인 (0) | 2010.05.27 |
[손동진] 재질과 광원 (0) | 2010.05.27 |
[김재진] 3D 행렬 (1) | 2010.05.24 |
DirectX-정점 (1) | 2010.05.20 |
[김재진]3D그래픽스의 개념과 렌더링파이프라인 (0) | 2010.05.27 |
---|---|
[김재진]행렬의 곱셈 및 항등행렬 설명 (0) | 2010.05.27 |
[김재진] 3D 행렬 (1) | 2010.05.24 |
DirectX-정점 (1) | 2010.05.20 |
DirectX-전체 화면 하는 방법 (1) | 2010.05.19 |
CImage는 MS에서 .net 이후부터 제공되는 그림 관련 클래스임.
이전 CBitmap의 bmp만 다루던거에서 좀더 확장하여 Png, Jpg, gif등 다양한 포멧을 지원한다.
기본적으로 사용은
CImage image; 로 한다.
CImage는 일종의 스케치북으로 볼수 있다.
사용법으로
CImage.Create(width, height, bpp); 로 새 스케치북을 만드거나
CImage.Load(CString("filename")); 으로 파일을 받아올수 있다.
이렇게 만들어진것중에서 자주 사용하는 매소드로
BitBlt ... : 기본 API 이다.
사용법은
CImage image;
image.Load("test.jpg");
image.BitBlt(pDC, 0, 0);
이러면 pDC의 0,0 지점에 test.jpg 그림이 복사된다.
좀더 응용하면
CImage a,b;
a.Load("test.jpg");
b.Create(a.GetWidth(), a.GetHeight(), a.GetBPP());
a.BitBlt(b.GetDC(), 0, 0);
b.ReleaseDC();
이렇게 하면 b에 a의 그림이 복사된다.
중요 포인트는 GetDC()를 해준뒤 바로 ReleaseDC를 해줘야 한다.
나머지 대충 사용하면되고..
GetPixel의 경우..
GetPixel과 SetPixel을 그대로 사용하는건 정말 CPU혹사시키는 짓이다.
다음 함수로 대체 하는것이 좋다
// SetPixel 대용
void PointColor(CImage *image, int x, int y, COLORREF c)
{
// m_image.SetPixel() call ::SetPixel() which is too slow
// since it has to work with all DCs.
BYTE *p = (BYTE*)image->GetPixelAddress(x, y);
if (m_nBitDepth == 16) {
*(WORD *)p = (WORD)(((c&0xf80000) >> 19) | ((c&0xf800) >> 6) | ((c&0xf8) << 7));
}
else {
*p++ = GetBValue(c);
*p++ = GetGValue(c);
*p = GetRValue(c);
}
}
// GetPixel 대용
COLORREF GetPointColor(CImage *image, int x, int y)
{
COLORREF result = *((COLORREF*)image->GetPixelAddress(x,y));
// 메모리에서 가져올때, blue와 red위치가 바뀌어서 가져와진다
BYTE r = GetBValue(result);
BYTE g = GetGValue(result);
BYTE b = GetRValue(result);
return RGB(r,g,b);
}
[김재진][API]Dialog에서 Slider Componet를 사용하기 (0) | 2010.07.13 |
---|---|
[서동권] MFC 메뉴 삭제하는 방법 (0) | 2010.06.06 |
[김재진]행렬의 곱셈 및 항등행렬 설명 (0) | 2010.05.27 |
---|---|
[손동진] 재질과 광원 (0) | 2010.05.27 |
DirectX-정점 (1) | 2010.05.20 |
DirectX-전체 화면 하는 방법 (1) | 2010.05.19 |
스터디때 쓰일 발표 자료.. (1) | 2010.05.17 |
재대로 파악한건지 아닌지 솔직히 잘 모르겠습니다만,
어느정도 맞는거? 같아요...
트랙백 걸어 놉니다.
스터디때 보아요.
[김재진]행렬의 곱셈 및 항등행렬 설명 (0) | 2010.05.27 |
---|---|
[손동진] 재질과 광원 (0) | 2010.05.27 |
[김재진] 3D 행렬 (1) | 2010.05.24 |
DirectX-전체 화면 하는 방법 (1) | 2010.05.19 |
스터디때 쓰일 발표 자료.. (1) | 2010.05.17 |
[김재진]행렬의 곱셈 및 항등행렬 설명 (0) | 2010.05.27 |
---|---|
[손동진] 재질과 광원 (0) | 2010.05.27 |
[김재진] 3D 행렬 (1) | 2010.05.24 |
DirectX-정점 (1) | 2010.05.20 |
스터디때 쓰일 발표 자료.. (1) | 2010.05.17 |
[김재진]행렬의 곱셈 및 항등행렬 설명 (0) | 2010.05.27 |
---|---|
[손동진] 재질과 광원 (0) | 2010.05.27 |
[김재진] 3D 행렬 (1) | 2010.05.24 |
DirectX-정점 (1) | 2010.05.20 |
DirectX-전체 화면 하는 방법 (1) | 2010.05.19 |