2009-08-03 2 views
10

Sto lavorando a un'app per iPhone che utilizza la fotocamera per scattare foto, quindi le sto salvando nella directory Documenti applicazioni. Sto utilizzando il seguente codice per convertire l'UIImage a NSData,UIImagePNGRresentazione lenta o sto facendo qualcosa di sbagliato?

NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)]; 

poi scrivo la NSData utilizzando

[imageData writeToFile:path atomically:NO] 

funziona tutto. Il problema è che UIImagePNGRepresentation() è molto lento. Ci vogliono 8-9 secondi sul mio 3G per convertire l'immagine in NSData. Questo mi sembra sbagliato. Qualcuno ha qualche esperienza con questo? È solo una funzione lenta o sto facendo qualcosa di terribilmente sbagliato?

Grazie

risposta

21

Sei sicuro che si desidera salvare le immagini catturate con la fotocamera come PNG?

JPEG è un formato più appropriato per le fotografie. Inoltre, è probabilmente molto più veloce!

+0

JPeg è molto più veloce, infatti, (mai usato PNG, ma Jpeg non impiega mai 9 secondi, prende come 1) – Daniel

+0

dovrebbe aver incluso anche questo nugget di informazioni nella mia risposta. Non è velocissimo, ma è molto più veloce del metodo PNG. – bpapa

+0

Molto più veloce davvero. La conversione PNG ha richiesto 8,941264 secondi e JPG a 0,9 prende 3,222942. Problema risolto in meno di 5 minuti, adoro questo sito. – TheGeoff