作者lovecold (小猪头)
看板GameDesign
标题[程式] DX9中的Texture资料另存方法
时间Wed Jul 28 15:14:18 2010
各位前辈好,小弟我最近在研究一个png图档的裁切
我把一张png图我要的范围取出来後,想把那个范围内的颜色资讯给存下来
可是目前怎麽存都有点问题,所以想来请教一下,我存方式是不是有问题
下面是我的程式码
D3DLOCKED_RECT locked_rect;
g_pTexture->LockRect(0, &locked_rect, NULL, 0); //锁定
BYTE *target = (BYTE *)locked_rect.pBits;
RECT rect;
GetRect(.....); //取得我所需的范围矩形
int i_NewWidth = rect.right - rect.left; //取出的范围宽
int i_NewHeight= rect.bottom- rect.top; //取出的范围高
int iCount = 0;
BYTE* by_rectImageData = new BYTE[i_NewWidth*i_NewHeight*4];//建立空间存资料
for(int y = rect.top; y<rect.bottom; y++)
{
for(int x = rect.left; x<rect.right; x++)
{
i_index = y*(locked_rect.Pitch/4)+x;
by_rectImageData[iCount++] = target[i_index];
}
}
g_pTexture->UnlockRect(0); //解除锁定
请问我这样做有什麽地方不对吗??
我取得的值不是255就是0,麻烦各位帮帮忙,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.104.154.171
1F:→ lovecold:原来i_index算出来後要再乘4才是正确的 orz 07/28 17:29