Tamaño inexacto del NS dado en bytes

Tomé una image de 13,3 MB y la agregué a XCode. Soy consciente de que al comstackr, XCode realiza algunos trucos para networkingucir el tamaño del file. Hice esto, para probar qué tan grande era la image ahora, luego de convertirla en datos:

UIImage *image = [UIImage imageNamed:@"image.jpg"]; NSData *data = UIImageJPEGRepresentation(image, 1.0); NSLog(@"length: %i", data.length); 

La longitud que regresé fue 26758066 . Si eso está en bytes, entonces me lee como 26.7MB. ¿Cómo es que la image es tan grande de repente? ¿Hay otra manera para que yo pueda get la image en forma de datos sin pasar primero por UIImage?

EDITAR: Pruebas adicionales revelan que esto funciona, y saca una longitud de datos de ~ 13.3MB: la cantidad esperada:

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"]; NSData *data = [NSData dataWithContentsOfFile:filePath]; NSLog(@"length: %i", data.length); 

Lo que está haciendo su código es descomprimir la image en la memory y luego volver a comprimir como JPEG, con la relación de calidad más alta ( q=1.0 ). Es por eso que la image de repente es tan grande.

Si desea verificar el file almacenado en el package de resources, solicite a NSBundle la ruta completa del file y utilice NSFileManager para leer el tamaño del file. Puede hacer lo mismo a mano en su Mac, simplemente eche un vistazo a BUILD_PRODUCTS_DIR para su proyecto.