首页 > 代码库 > Width vs Pitch
Width vs Pitch
1、单位不同,width是像素,pitch是字节。因此一个640*480的8位图和640*480的32位 图他们width一样而pitch不一样。
2、pitch可能大于width个像素所占字节数。width就是图像实际显示的宽度;而pitch 是存储一行图像所占的字节(相邻两行起点指针的差值),有时为了高效处理,会将每 行图像都对齐存储,这样pitch就包括了对齐使用的填充字节。
void ChangeRed(){ //假定_surface是一个指向IDirectSurface9接口的指针 //每个像素 32bit的像素格式 //取得表面描述 D3DSURFACE_DESC surfaceDesc; _surface->GetDesc(&surfaceDesc); //取得被锁定的表面像素指针 D3DLOCKED_RECT lockedRect; _surface->LockRect( &lockedRect,//指向被锁定表面的数据 0,//0表示锁定全部表面 0);//0表示没有锁定标记 //遍历表面上的每个像素,将他们设为红色 DWORD *imageData = http://www.mamicode.com/(DWORD *)lockedRect.pBits; for (int i = 0; i < surfaceDesc.Width; ++i) { for (int j = 0; j < surfaceDesc.Height; ++j) { //取得纹理索引 int index = i * lockedRect.Pitch / 4 + j; imageData[index] = 0xffff0000; } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。