2009-06-15 12 views
23

podczas otwierania pracy z UIImagePickerController i ustawieniem allowImageEditing = YES; istnieje domyślna ramka przycinania o wymiarach 320x320. W moim przypadku chciałbym ustawić ramkę przycinania na 320 x 240 dla zdjęć krajobrazowych i 240 x 320 dla zdjęć portretowych. Jednak nie byłem w stanie znaleźć sposobu na zmianę ramki 320x320 używanej podczas edycji/kadrowania zdjęcia. Czy ktokolwiek z was znalazł sposób, żeby to zrobić?jak zmienić ramkę przycinania UIImagePickerController

Dzięki!

Odpowiedz

28

Musisz to zaimplementować samodzielnie.

Picker wykonuje tylko kadrowanie 320 x 320.

Więc zamiast ustawić

allowsImageEditing = NO;

Teraz otrzymasz pełny obraz z powrotem. Następnie musisz utworzyć kontroler widoku/widoku, który zostanie przycięty do pożądanych proporcji.

2

Jest to nowsza odpowiedź niezbędnego kodu ręcznego przycinania: Manual Crop

Nadal nie ma ucieczki ciężką pracę.

1

Możesz spróbować ShittyImageCrop. Dobrze jest przyciąć do określonego współczynnika proporcji. W twoim przypadku, przedstawiając je z proporcjami 4: 3 (lub 3: 4 w układzie poziomym) tak:

let cropVC = ShittyImageCropVC(frame: (self.navigationController?.view.frame)!, image: imageToCrop, aspectWidth: 4, aspectHeight: 3) 
self.navigationController?.present(cropVC, animated: true, completion: nil) 

Po tym można użyć innego kodu po prostu przeskalować ją do żądanej rozdzielczości (320x240 lub 240x320) .

Powiązane problemy