我有一张由 iPod touch 4 拍摄的图像,分辨率为 720x960。在模拟器中,对图像调用 CGImageGetBytesPerRow() 返回 2880(720 * 4 字节),这是我所期望的。然而,在设备上 CGImageGetBytesPerRow() 将返回 3840,即沿高度的“每行字节数”。有谁知道为什么有不同的行为,即使我在 CGImageGetBytesPerRow() 上的图像在两种情况下宽度均为 720,高度为 960?
提前致谢。
最佳答案
每行的字节数可以是任何值,只要足以容纳图像边界即可,因此最好不要假设它是适合图像的最小值。
我猜测在设备上,每行的字节数是由某些或其他优化或硬件考虑因素决定的:如果方向旋转,或者图像传感器传输额外的字节,则可能不必更改图像缓冲区每行的死数据然后被忽略,而不是第二次传输到每行最小字节的缓冲区中,或者其他一些原因,只有当我们知道这些设备的内部工作原理时才有意义。
关于iphone - CGImageGetBytesPerRow() 在 iOS 模拟器和 iOS 设备上返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892594/