画像を MOV ファイルに変換していて、興味深いことがありました。色成分ごとのビット数、ピクセルごとのビット数、行ごとのバイト数を記録しました。これが私のコードです:
NSLog(@"Image width: %d, Height: %d", CGImageGetWidth(image), CGImageGetHeight(image));
NSLog(@"BPC: %d \ BPP: %d \ ByPR: %d", CGImageGetBitsPerComponent(image), CGImageGetBitsPerPixel(image), CGImageGetBytesPerRow(image));
ここに私の出力があります:
画像の幅: 300、高さ: 300 (すべてが予想どおり) BPC: 8 (1 色あたり 8 ビット...これまでのところ非常に良好) BPP: 32 (32 = 4 コンポーネント ARGB * 1 色あたり 8 ビット...わかりました) ByPR :1216 (行あたり 300 ピクセル * ピクセルあたり 4 バイト = 行あたり 1200 バイト)
行ごとに 1200 ではなく 1216 バイトが記録されるのはなぜですか? ところで、これはただのまぐれではありません。これらのバッファ サイズの数値に基づいてビデオを作成すると、機能します。行あたり 1200 バイトで作成すると、めちゃくちゃなエイリアシング効果が得られます。
考え?!