2011-05-05 78 views
0

我有一張由我的iPod touch 4拍攝的720x960圖像。在模擬器調用圖像CGImageGetBytesPerRow()返回2880(720 * 4字節),這是我的預期。然而,在設備上,CGImageGetBytesPerRow()將返回3840,即沿着高度的「每行字節數」。有沒有人知道爲什麼有不同的行爲,即使我在CGImageGetBytesPerRow()上的圖像在這兩種情況下的寬度爲720,高度爲960?CGImageGetBytesPerRow()會在iOS模擬器和iOS設備上返回不同的值

在此先感謝。

回答

1

每行的字節數可以是任何東西,只要它足以容納圖像邊界,所以最好不要假定它將是適合圖像的最小值。

我猜想在設備上,每行的字節數是由一些或其他優化或硬件考慮決定的:或許圖像緩衝區在旋轉方向時不必更改,或者圖像傳感器傳輸額外字節每行死數據然後被忽略,而不是在每行最少字節數的情況下進行第二次傳輸到緩衝區,或者其他一些只有在我們知道這些設備的內部工作原理時纔有意義的原因。

0

它可能會略有不同,因爲內部存儲器分配:「內存中用於指定位圖圖像(或圖像掩碼)的每一行的字節數。」 1

考慮對某些特殊任務使用NSBitmapRepresention。

相關問題