UIImageJPEGRepresentation - problema de liberación de memoria

En una aplicación para iPhone, necesito enviar un jpg por correo con un tamaño máximo de 300Ko (no tengo el tamaño máximo que puede tener mail.app, pero es otro problema). Para hacer eso, estoy tratando de disminuir la calidad hasta obtener una imagen de menos de 300Ko.

Para obtener el buen valor de la calidad (nivel de compresión) que me da un jpg por debajo de 300Ko, hice el siguiente ciclo. Está funcionando, pero cada vez que se ejecuta el bucle, el aumento de memoria del tamaño del tamaño original de mi jpg (700Ko) a pesar de "[tmpImage release];".

float compressionLevel = 1.0f;
int size = 300001;
while (size  > 300000) {
    UIImage *tmpImage =[[UIImage alloc] initWithContentsOfFile:[self fullDocumentsPathForTheFile:@"imageToAnalyse.jpg"]];
    size = [UIImageJPEGRepresentation(tmpImage, compressionLevel) length];
    [tmpImage release];
        //In the following line, the 0.001f decrement is choose just in order test the increase of the memory  
    //compressionLevel = compressionLevel - 0.001f;
    NSLog(@"Compression: %f",compressionLevel);
} 

¿Alguna idea sobre cómo puedo obtenerlo o por qué sucede? Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta