이미지 함수를 만드는 도중 이미지 배열을 반전시키면서 동시에 픽셀을 제어하는 것을 생각해 보았다.
간편하게 하자면 배열을 반전시키고 그 뒤 픽셀 색상을 조작하면 되는데 이러면 내 기준에서 많은 케이스가
생겨나서 귀찮고 그냥 한번에 하려고 해봤다.
int bBuffD[]; // 타겟
int bBuffS[]; // 소스
int i,j;
int cnt,offset; // 현재 오프셋
int sdir,ddir; // 배열 제어 방향
int a,sw; // 기타 값
switch(op&0xff)
{
case RT_W :
// 좌우반전
cnt = 0;
sdir = 1;
offset = w;
ddir = -1;
sw = w;
break;
case RT_WH :
// 상하좌우반전
cnt = 0;
sdir = 1;
offset = w*h;
ddir = -1;
sw = 0;
break;
case RT_H :
// 상하 반전
cnt = 0;
sdir = 1;
offset = w*h-w;
ddir = 1;
sw = -w;
break;
default :
// 이건 바꾸지 않으니까 리턴
return;
break;
}
for(i = 0; i<h;i++)
{
a = i*sw;
offset += sw;
for(j = 0; j<w;j++)
{
// 추가 제어 로직
bBuffD[cnt] = bBuffS[offset+a];
cnt+=sdir;
offset += ddir;
}
}
이렇게 하면 배열의 순서를 바꿀 수 있다.
이미지 조작할 때 쓰면 좋겠다는 생각에 만들어 보았다.
www.gamehon.com www.gamemotor.com
'Game Programming' 카테고리의 다른 글
컬러 믹싱 알고리즘 (0) | 2009.07.27 |
---|---|
RML 0.1 (0) | 2009.05.19 |
pnglib 사용상 주의 (0) | 2009.02.26 |
플로트랜드 온라인 F-Land Online (0) | 2009.01.01 |
Data Base Control Server (0) | 2008.12.25 |