为什么每行高于每像素倍宽度的字节更多我的形象的字节?(Why is my image's B

2019-08-21 11:48发布

我将图像转换为MOV文件,并有一个有趣的事情发生在我身上。 我记录每个颜色分量我的位,每像素位数,并且每行的字节。 这里是我的代码:

NSLog(@"Image width: %d, Height: %d", CGImageGetWidth(image), CGImageGetHeight(image));
NSLog(@"BPC: %d \ BPP: %d \ ByPR: %d", CGImageGetBitsPerComponent(image), CGImageGetBitsPerPixel(image), CGImageGetBytesPerRow(image));

这里是我的输出:

图片宽度:300,高度:300(一切都如预期)BPC:8(每色8位......到目前为止好)BPP:32(32 = 4的组件ARGB每色* 8位......知道了)ByPR :1216(每行300像素每像素×4个字节=每行1200个字节)

为什么我登录每行1216个字节,而不是1200? 顺便说一句,这不只是一个侥幸。 当我创建基于缓冲区大小这些数字视频,它的工作原理。 当我和每行1200个字节创建它,我得到一些乱七八糟混叠效应。

思考?

Answer 1:

该系统喜欢的图像是每行64个字节,据推测为更好的性能,因为高速缓存线对准的倍数。 1200是不是64的倍数,但1216。



文章来源: Why is my image's Bytes per Row more than its Bytes per Pixel times its Width?