2012-04-11 9 views
8

Właśnie wymyśliłem sposób na zmianę rect dla pola przycinania, które pojawia się po przechwyceniu obrazu z UIImagePickerViewController. Można to zrobić za pomocą UIImagePickerControllerCropRect. Ale nie mam pojęcia, jak z niego korzystać. Pierwotnie pole przycinania jest kwadratowe. Chcę, żeby była prostokątna.Jak używać UIImagePickerControllerCropRect

Czy ktoś może udostępnić mi przykład?

Odpowiedz

3

Nie można tego zrobić za pomocą wbudowanej funkcji UIImagePickerController. Niestety, nie możesz kontrolować rozmiaru pola przycinania.

, które mogą pomóc w osiągnięciu tego, co chcesz zrobić (zamówienie YSImageCrop.h).

Zasadniczo podstawową funkcją jest samodzielne wdrożenie funkcji UIImagePickerController. Wierzę, że projekt UIImagePickerWithEditor jest dobrym miejscem do rozpoczęcia.

+0

projektu na github jest na kadrowanie obrazu po jego zrobione przy użyciu aparatu lub zdjęcie album. Pytanie dotyczy przycinania podczas robienia zdjęcia lub oglądania zdjęcia, podobnie do aplikacji bankowej Chase, aby przechwycić czek z niestandardowym prostokątem przycinania. –

6

Tak, możemy to zrobić.

Tworzenie zdefiniowanej przez użytkownika funkcji takiego:

- (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect 
{ 
    CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect); 

    UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 


    return cropped; 

} 

I nazywają ten kod:

UIImage *img1=[self imageByCropping:img toRect:CGRectMake(0,0, 106.6, 106.6)]; 
UIImageView *image_view=[[UIImageView alloc] initWithImage:img1]; 
+1

Jest to przydatne, jeśli chcesz przyciąć obraz wybrany przez użytkownika do określonego rozmiaru. Jeśli chodzi o zmianę pola przycinania, tak aby użycie mogło faktycznie wybrać przycięty obraz, UIImagePickerController nie pozwala na to. –

+0

dziękuję bardzo. –