Pourquoi les octets par ligne de ma photo sont-ils plus que ses octets par pixel multipliés par sa largeur?

Je convertis des images dans un file MOV, et une chose intéressante m'arriva. J'ai enregistré mes bits par composant de couleur, bits par pixel et octets par ligne. Voici mon code:

NSLog(@"Image width: %d, Height: %d", CGImageGetWidth(image), CGImageGetHeight(image)); NSLog(@"BPC: %d \ BPP: %d \ ByPR: %d", CGImageGetBitsPerComponent(image), CGImageGetBitsPerPixel(image), CGImageGetBytesPerRow(image)); 

Voici ma sortie:

Largeur de l'image: 300, Hauteur: 300 (tout est comme prévu) BPC: 8 (8 bits par couleur … jusqu'ici tout va bien) BPP: 32 (32 = 4 composants ARGB * 8 bits par couleur … compris) : 1216 (300 px par ligne * 4 octets par pixel = 1200 octets par ligne)

Pourquoi suis-je enregistré 1216 octets par ligne, et pas 1200? Au fait, ce n'est pas juste un coup de chance. Lorsque je crée une video basée sur ces nombres pour les tailles de memory tampon, cela fonctionne. Lorsque je le crée avec 1200 octets par ligne, j'obtiens un effet d'alias.

Pensées?!

Le système aime que les images soient un multiple de 64 octets par ligne, vraisemblablement pour de meilleures performances en raison de l'alignment de la ligne de cache. 1200 n'est pas un multiple de 64, mais 1216 est.