社区
游戏开发
帖子详情
关于 像素对齐 行间距pitch 的问题
chifagao
2011-07-18 11:05:18
行间距pitch 肯定不是 图像的宽度。 一般大于 图像的宽度
这个间隙 什么时候产生和什么阶段存在的? 是将 像素写入到 磁盘 还是读入到 内存是产生的?还是一直就存在。
图像在磁盘存储时 存不存在 间隙 ? 写入到磁盘是 将 间隙的字节和像素一起写入 还是只 写入 像素字节本身?
...全文
348
3
打赏
收藏
关于 像素对齐 行间距pitch 的问题
行间距pitch 肯定不是 图像的宽度。 一般大于 图像的宽度 这个间隙 什么时候产生和什么阶段存在的? 是将 像素写入到 磁盘 还是读入到 内存是产生的?还是一直就存在。 图像在磁盘存储时 存不存在 间隙 ? 写入到磁盘是 将 间隙的字节和像素一起写入 还是只 写入 像素字节本身?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xychzh
2011-07-20
打赏
举报
回复
修正上楼:
“像素格式也取决于创建时的格式”
应该是:
“像素格式取决于要保存的格式”
xychzh
2011-07-20
打赏
举报
回复
再补充一下,这个pitch的值是IDirect3DTexture9在加载纹理时决定的,从该值可以看到实际的纹理占了多少内存。跟图片本身的像素尺寸无关。
比如你不从图片加载,自己构造一个二维像素数据,加载到IDirect3DTexture9时,会根据你给的宽高,及像素格式来决定它要为这些像素如何分配内存,以获得最大性能。
关于写入到文件,我的测试结果是可能会和pitch一致,也可能不会
1:我加载了一个非2的次幂纹理,载入后被扩充成了2的次幂尺寸,然后保存纹理后,尺寸也是2的次幂,与pitch一致
2:我创建了一个1×1的D3DFMT_A1R5G5B5格式纹理,其pitch是4(而原本只有16位),保存到纹理后,图像宽度依然是1×1
这样可以得出的大致结论就是,宽高肯定是和创建后的宽高一致的,像素格式也取决于创建时的格式,而pitch应该只算是他纹理本身的内存组织方式。
以上都是由测试产生的想法,同样仅供参考。
xychzh
2011-07-20
打赏
举报
回复
一般情况下,如果禁用了2的次幂处理,则pitch就是图像原宽度的字节数,如果没禁用,则宽度就为缩放后的宽度字节数,
总之它总是等于图像创建完后通过GetLevelDesc()函数得到的宽度的字节数
以上都是通过测试D3DXCreateTextureFromFileEx()得出的大致结果。
另外,对于一些特殊格式,情况也会有所不一样,以CreateTexture()为例:
比如:
1×1、2×2的D3DFMT_A8L8格式纹理(16位)或者D3DFMT_L8(8位)纹理,其pitch始终是4字节,而且不管是否禁用了2的次幂限制,都是4字节。(似乎4是pitch的最低值)
可能是为了最大化的提升性能,所以,做了很多特殊的处理,总之是无规律的,无法用一个“公式”直接得到什么结论的,如果能把所有情况都测试一下,然后列个表,看看pitch的值到底都是多少,或许会更好一些。
一般读写纹理时用pitch做为图像一行的宽度就不会有什么问题。
我所知道的就是这些了,都是测试的结果,没看过SDK,对不对不能保证,你参考下吧。
Visual C 教学课件:第3章 文本与字体.ppt
DEFAULT_
PITCH
, // 字体间距 "仿宋_GB2312" // 字体名 ); ``` 之后,同样需要使用`SelectObject`将创建的自定义字体选入设备上下文,以便进行后续的文本输出。 文本输出的基本操作包括文本格式化和文本输出函数...
css-cheat-sheet-v2.pdf
- **`:first-line`**:选中元素的第一行文本。 - **`:first-letter`**:选中元素的第一个字母。 - **`:hover`**:当鼠标悬停在元素上时激活。 - **`:active`**:选中被激活的元素(例如,按下鼠标按钮时)。 - **`:...
图像间距
pitch
是什么?(linesize、stride)(指图像中的一行图像数据所占的存储空间的长度)
间距(
pitch
) 在图像数据传输和显示的过程中有一个不常用的参数:间距。 它有很多的别名, 在使用d3d(Direct3D,是微软为提高3D游戏在Windows中的显示性能而开发的显示程序接口)显示的时候,它叫
pitch
; 在用...
图像处理、显示中的行宽(linesize)、步长(stride)、间距(
pitch
)
图像处理、显示中的行宽(linesize)、步长(stride)、间距(
pitch
)在图像数据传输和显示的过程中有一个不常用的参数:间距。间距的名称:它有很多的别名,在使用d3d显示的时候,它叫
pitch
;在用ffmpeg解码的时候...
图像Width和
Pitch
间距(
pitch
) 在图像数据传输和显示的过程中有一个不常用的参数:间距。 它有很多的别名,在使用d3d显示的时候,它叫
pitch
;在用ffmpeg解码的时候,它叫linesize;在用ffmpeg转换格式的时候,它叫stride。统一...
游戏开发
8,325
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章