2009-08-03 5 views
10

Je travaille sur une application iPhone qui utilise l'appareil photo pour prendre des photos, puis je les enregistre dans le répertoire Documents d'applications. J'utilise le code suivant pour convertir le UIImage à NSData,UIImagePNGRepresentation lente ou suis-je en train de faire quelque chose de mal?

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

Puis j'écrire le NSData en utilisant

[imageData writeToFile:path atomically:NO] 

tout cela fonctionne. Le problème est que UIImagePNGRepresentation() est vraiment lent. Il faut 8-9 secondes sur ma 3G pour convertir l'image en NSData. Cela me semble faux. Est-ce que quelqu'un a de l'expérience avec ça? Est-ce que c'est juste une fonction lente ou est-ce que je fais quelque chose de terriblement mal?

Merci

Répondre

21

Etes-vous sûr que vous voulez enregistrer des images capturées avec l'appareil photo au format PNG?

JPEG est un format plus approprié pour les photographies. De plus, c'est probablement beaucoup plus rapide!

+0

JPeg est beaucoup plus rapide en effet, (jamais utilisé PNG, mais Jpeg ne prend jamais 9 secondes, prend comme 1) – Daniel

+0

aurait dû inclure cette pépite d'information ainsi dans ma réponse. Ce n'est pas très rapide mais c'est beaucoup plus rapide que la méthode PNG. – bpapa

+0

Beaucoup plus rapide en effet. La conversion PNG a pris 8.941264 secondes et le JPG à 0.9 prend 3.222942. Problème résolu en moins de 5 minutes, j'adore ce site. – TheGeoff

Questions connexes