2009-09-04 13 views
5

Próbuję zrobić zrzut ekranu obecnego widoku mojej aplikacji i zapisać go w albumie fotograficznym (aby wysłać go pocztą e-mail lub MMS).UIImageWriteToSavedPhotosAlbum zapisuje nieprawidłowy rozmiar i jakość.

UIGraphicsBeginImageContext(self.view.bounds.size); 

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

UIImageWriteToSavedPhotosAlbum(viewImage, self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil); 

To działa, ale powstały obraz apears być większe (533x800px) i mocno ściśnięta kiedy wysłać go z biblioteki zdjęć.

Próbowałem najpierw napisać UIImage do pliku, a następnie zapisać do albumu, ale nadal mam ten sam problem.

Jeśli użyłem wbudowanej funkcji zrzutu ekranu w telefonie iPhone, widok zapisuje się poprawnie w albumie fotograficznym w rozdzielczości 320x480, ale powyższy kod wydaje się z jakiegoś powodu zapisać większy obraz?

Dzięki!

+0

Powinienem dodać, że dzieje się to tylko podczas testowania na urządzeniu. Wszystko wydaje się w porządku na symulatorze. – wuwongy

Odpowiedz

1

Miałem ten sam błąd, z mojej strony, który został rozwiązany, gdy zaokrąglałem liczbę dziesiętną do tej samej skali co iPhone, spróbuj, upewnij się, że skala wynosi 1.0, 2.0, itp., A nie 3.1, że wyrzucę to.

19

Znalazłem przyzwoite obejście, które polega w istocie na przepakowaniu UIImage jako PNG, a następnie zapisaniu wersji przepakowanej. Kod wygląda mniej więcej tak:

UIImage* im = [UIImage imageWithCGImage:myCGRef]; // make image from CGRef 
NSData* imdata = UIImagePNGRepresentation (im); // get PNG representation 
UIImage* im2 = [UIImage imageWithData:imdata]; // wrap UIImage around PNG representation 
UIImageWriteToSavedPhotosAlbum(im2, nil, nil, nil); // save to photo album 
+1

To jest rozwiązanie problemu z kompresją. Obrazy będą przechowywane jako PNG w twojej bibliotece zdjęć. Przetestuj to, przesyłając e-mailem obraz po tym, jak jest w bibliotece zdjęć. –

Powiązane problemy