2009-08-03 19 views
10

Pracuję nad aplikacją iPhone, która używa aparatu do robienia zdjęć, a następnie zapisuję je w katalogu Dokumenty aplikacji. Używam następujący kod do konwersji UIImage do NSData,UIImagePNGRepresentation powolne, czy robię coś nie tak?

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

Potem piszę NSData użyciu

[imageData writeToFile:path atomically:NO] 

to wszystko działa. Problem polega na tym, że UIImagePNGRepresentation() jest naprawdę wolny. Zajmuje 8-9 sekund na moim 3G, aby przekonwertować obraz na NSData. Wydaje mi się to niewłaściwe. Czy ktokolwiek ma z tym jakieś doświadczenie? Czy to tylko powolna funkcja, czy też robię coś okropnie nie tak?

Dzięki

Odpowiedz

21

Czy na pewno chcesz zapisać zdjęcia zrobione za pomocą aparatu jako PNG?

Format JPEG jest bardziej odpowiednim formatem dla zdjęć. Dodatkowo jego prawdopodobnie dużo szybciej!

+0

JPeg jest znacznie szybszy, (nigdy nie używał PNG, ale Jpeg nigdy nie zajmuje 9 sekund, zajmuje 1). – Daniel

+0

powinien był uwzględnić tę bryłę informacji w mojej odpowiedzi. Nie świeci szybko, ale jest znacznie szybszy niż metoda PNG. – bpapa

+0

O wiele szybciej. Konwersja PNG zajęła 8.941264 s, a JPG na 0.9 zajmuje 3.222942. Problem rozwiązany w mniej niż 5 minut, podoba mi się ta strona. – TheGeoff

Powiązane problemy