iphone - CGImageGetBytesPerRow() 在 iOS 模拟器和 iOS 设备上返回不同的值

标签 iphone ios

我有一张由 iPod touch 4 拍摄的图像,分辨率为 720x960。在模拟器中,对图像调用 CGImageGetBytesPerRow() 返回 2880(720 * 4 字节),这是我所期望的。然而,在设备上 CGImageGetBytesPerRow() 将返回 3840,即沿高度的“每行字节数”。有谁知道为什么有不同的行为,即使我在 CGImageGetBytesPerRow() 上的图像在两种情况下宽度均为 720,高度为 960?

提前致谢。

最佳答案

每行的字节数可以是任何值,只要足以容纳图像边界即可,因此最好不要假设它是适合图像的最小值。

我猜测在设备上,每行的字节数是由某些或其他优化或硬件考虑因素决定的:如果方向旋转,或者图像传感器传输额外的字节,则可能不必更改图像缓冲区每行的死数据然后被忽略,而不是第二次传输到每行最小字节的缓冲区中,或者其他一些原因,只有当我们知道这些设备的内部工作原理时才有意义。

关于iphone - CGImageGetBytesPerRow() 在 iOS 模拟器和 iOS 设备上返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892594/

相关文章:

由 iBeacon 触发的 iOS 8 后台位置更新

ios - Cocos2d - 找不到 json/document.h 文件

iphone - iOS SDK 中的 NSAlert.h 在哪里?

ios - 无法转换 UITableViewCell 类型的值

ios - 在 swrevealcontroller 之前实现登录屏幕

ios - 如何获取 iOS 13 中的状态栏高度?

ios - '一个 AVPlayerItem 不能与多个 AVPlayer 实例相关联'

iPhone SDK : Block Animation Ignore Error with Curved Path

ios - 如何在表格 View 中一次选择单选按钮

ios - viewcontroller 是否必须在响应 alertview 之前声明 <UIAlertViewDelegate>