ios – 为什么我的图像每行的字节数超过其每像素的字节数乘以其宽度?

我将图像转换为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字节创建它,我得到一些混乱的混叠效果.

思考?

解决方法

系统喜欢图像是每行64字节的倍数,可能是由于高速缓存行对齐而导致更好的性能. 1200不是64的倍数,但1216是.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...