2016-01-12 13 views
5

Sto cercando di salvare un oggetto UIImage a un file .jpeg in un dispositivo di e sto usando questo codice:di file .jpeg Perché salvataggio tramite WriteToFile utilizzando il metodo UIImageJPEGRepresentation hanno grandi dimensioni quindi UIImageWriteToSavedPhotosAlbum in ios

-(void)saveImageToDocumentsDirectory:(UIImage *)mimage withFileName:(NSString *)fileName 
{ 
    UIImageWriteToSavedPhotosAlbum(mimage,nil,nil,nil); 
    NSData *dataForJPEGFile = UIImageJPEGRepresentation(mimage, 1.0); 
    NSError *error2 = nil; 
    if (![dataForJPEGFile writeToFile:[self getDirectoryFilePath:fileName] options:NSAtomicWrite error:&error2]) 
    { 
     return; 
    } 
} 

Verrà salvata l'immagine del tipo .jpeg ma sarà necessaria una quantità eccessiva di memoria rispetto al metodo UIImageWriteToSavedPhotosAlbum(mimage,nil,nil,nil), che salva lo stesso oggetto immagine nel tipo .jpeg e nella stessa qualità.

La mia domanda è perché così .. ??

+0

"La stessa qualità" è soggettiva, hai provato a ridurre gradualmente il parametro di qualità dell'immagine fino a quando le dimensioni sono circa uguali e la qualità è ancora "uguale"? –

+0

@ A-Live quando diminuisco il parametro di qualità dell'immagine anche le dimensioni diminuiscono e anche la qualità. ma voglio salvare l'immagine come fa questo metodo UIImageWriteToSavedPhotosAlbum (mimage, nil, nil, nil). Come posso raggiungere questo obiettivo..?? – Sushobhit

+0

Facile, usa UIImageWriteToSavedPhotosAlbum. –

risposta

-1

Si sta impostando la qualità per essere veramente alta (1.0), suppongo che 0.6 o 0.7 sia più che sufficiente per i file jpeg mentre leggo da qualche parte.

Forse è possibile trovare la qualità appropriata in base all'utilizzo dell'app, per me a volte 0,5 è più che sufficiente.