Iphone CGImageGetBytesPerRow()在iOS模拟器和iOS设备上返回不同的值
我有一张由我的iPodtouch 4拍摄的图像,是720x960。在模拟器中,对图像调用CGImageGetBytesPerRow()返回2880(720*4字节),这是我所期望的。但是,在设备上,CGImageGetBytesPerRow()将返回3840,即沿高度方向的“每行字节数”。有人知道为什么在这两种情况下,即使我所使用的CGImageGetBytesPerRow()图像的宽度为720,高度为960,也会出现不同的行为吗Iphone CGImageGetBytesPerRow()在iOS模拟器和iOS设备上返回不同的值,iphone,ios,Iphone,Ios,我有一张由我的iPodtouch 4拍摄的图像,是720x960。在模拟器中,对图像调用CGImageGetBytesPerRow()返回2880(720*4字节),这是我所期望的。但是,在设备上,CGImageGetBytesPerRow()将返回3840,即沿高度方向的“每行字节数”。有人知道为什么在这两种情况下,即使我所使用的CGImageGetBytesPerRow()图像的宽度为720,高度为960,也会出现不同的行为吗 提前谢谢 每行字节可以是任何值,只要它足以保持图像边界,因此最好
提前谢谢 每行字节可以是任何值,只要它足以保持图像边界,因此最好不要假设它将是适合图像的最小值
我猜在设备上,每行字节数取决于某些或其他优化或硬件考虑:可能是一个图像缓冲区,如果方向旋转,则不必更改,或者图像传感器每行传输额外的死数据字节,然后忽略这些字节,而不是以每行最小字节数第二次传输到缓冲区,或者只有在我们知道这些设备的内部工作情况时才有意义的其他原因。这可能略有不同,因为内部内存分配:“指定位图图像(或图像掩码)的每行在内存中使用的字节数。” 考虑对某些特殊任务使用NSBitMapRepresentation