2011-05-05 6 views
0

720x960 크기의 아이팟 터치 4로 촬영 한 이미지가 있습니다. 시뮬레이터에서 CGImageGetBytesPerRow()를 호출하면 이미지에서 2880 (720 * 4 바이트)을 반환하는데 이는 예상했던 것입니다. 그러나 장치에서 CGImageGetBytesPerRow()는 높이를 따라 "행당 바이트 수"를 3840을 반환합니다. 아무도 왜 내가 CGImageGetBytesPerRow() 이미지가 720 경우 모두 960의 너비가 있지만 다른 동작이 있는지 알고 있습니까?CGImageGetBytesPerRow()는 iOS 시뮬레이터 및 iOS 기기에서 다른 값을 반환합니다.

미리 감사드립니다.

답변

1

이미지 경계를 유지하는 것으로 충분하면 행당 바이트 수 있으므로 이미지를 맞추는 것이 최소한이 될 것이라고 가정하지 않는 것이 좋습니다.

장치 당 바이트 수는 몇 가지 또는 다른 최적화 또는 하드웨어 고려 사항에 의해 결정됩니다 : 방향을 회전 시키거나 이미지 센서가 여분의 바이트를 전송할 때 이미지 버퍼를 변경할 필요가 없을 수도 있습니다 행 당 최소 바이트로 버퍼로 두 번째 전송하는 대신 무시되는 데드 데이터를 무시하거나 이러한 장치의 내부 동작을 알고있는 경우에만 의미가있는 다른 이유가있을 수 있습니다.

0

내부 메모리 할당 : "지정된 비트 맵 이미지 (또는 이미지 마스크)의 각 행에 대해 메모리에 사용 된 바이트 수"때문에 약간 다를 수 있습니다. 1

일부 특수 작업에는 NSBitmapRepresention을 사용하는 것이 좋습니다.

관련 문제